﻿using System;

namespace Eniux.SharpOpenGL
{


    public class GLEnums
    {
        #region GLEnums 常量

        //   GLEnums Version Identifier
        public const uint GL_VERSION_1_1 = 1;

        #region AccumOp
        public const uint GL_ACCUM = 0x0100;
        public const uint GL_LOAD = 0x0101;
        public const uint GL_RETURN = 0x0102;
        public const uint GL_MULT = 0x0103;
        public const uint GL_ADD = 0x0104; 
        #endregion

        #region Alpha
        /// <summary>
        /// 总是不接受
        /// </summary>
        public const uint GL_NEVER = 0x0200;
        /// <summary>
        /// 如果片元的alpha值小于参考值，则接受
        /// </summary>
        public const uint GL_LESS = 0x0201;
        /// <summary>
        /// 如果片元的alpha值等于参考值，则接受
        /// </summary>
        public const uint GL_EQUAL = 0x0202;
        /// <summary>
        /// 如果片元的alpha值小于或等于参考值，则接受
        /// </summary>
        public const uint GL_LEQUAL = 0x0203;
        /// <summary>
        /// 如果片元的alpha值大于参考值，则接受
        /// </summary>
        public const uint GL_GREATER = 0x0204;
        /// <summary>
        /// 如果片元的alpha值不等于参考值，则接受
        /// </summary>
        public const uint GL_NOTEQUAL = 0x0205;
        /// <summary>
        /// 如果片元的alpha值大于或等于参考值，则接受
        /// </summary>
        public const uint GL_GEQUAL = 0x0206;
        /// <summary>
        /// 总是接受
        /// </summary>
        public const uint GL_ALWAYS = 0x0207; 
        #endregion

        #region AttribMask

        /// <summary>
        /// 当前（颜色，纹理等等）
        /// </summary>
        public const uint GL_CURRENT_BIT = 0x00000001;
        /// <summary>
        /// 点
        /// </summary>
        public const uint GL_POINT_BIT = 0x00000002;
        /// <summary>
        /// 直线
        /// </summary>
        public const uint GL_LINE_BIT = 0x00000004;
        /// <summary>
        /// 多边形
        /// </summary>
        public const uint GL_POLYGON_BIT = 0x00000008;
        /// <summary>
        /// 多边形点
        /// </summary>
        public const uint GL_POLYGON_STIPPLE_BIT = 0x00000010;
        /// <summary>
        /// 像素
        /// </summary>
        public const uint GL_PIXEL_MODE_BIT = 0x00000020;
        /// <summary>
        /// 光照
        /// </summary>
        public const uint GL_LIGHTING_BIT = 0x00000040;
        /// <summary>
        /// 雾
        /// </summary>
        public const uint GL_FOG_BIT = 0x00000080;
        /// <summary>
        /// 深度缓存
        /// </summary>
        public const uint GL_DEPTH_BUFFER_BIT = 0x00000100;
        /// <summary>
        /// 累计缓存
        /// </summary>
        public const uint GL_ACCUM_BUFFER_BIT = 0x00000200;
        /// <summary>
        /// 模板缓存
        /// </summary>
        public const uint GL_STENCIL_BUFFER_BIT = 0x00000400;
        /// <summary>
        /// 视窗
        /// </summary>
        public const uint GL_VIEWPORT_BIT = 0x00000800;
        /// <summary>
        /// 变换
        /// </summary>
        public const uint GL_TRANSFORM_BIT = 0x00001000;
        /// <summary>
        /// 启用
        /// </summary>
        public const uint GL_ENABLE_BIT = 0x00002000;
        /// <summary>
        /// 颜色缓存
        /// </summary>
        public const uint GL_COLOR_BUFFER_BIT = 0x00004000;
        public const uint GL_HINT_BIT = 0x00008000;
        /// <summary>
        /// 求值程序
        /// </summary>
        public const uint GL_EVAL_BIT = 0x00010000;
        /// <summary>
        /// 列表
        /// </summary>
        public const uint GL_LIST_BIT = 0x00020000;
        /// <summary>
        /// 纹理
        /// </summary>
        public const uint GL_TEXTURE_BIT = 0x00040000;
        /// <summary>
        /// 裁剪
        /// </summary>
        public const uint GL_SCISSOR_BIT = 0x00080000;
        /// <summary>
        /// 用于存储和恢复所有属性组中的所有状态变量
        /// </summary>
        public const uint GL_ALL_ATTRIB_BITS = 0x000fffff;
 
        #endregion

        #region BeginMode
        /// <summary>
        /// 一系列独立的点
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        public const uint GL_POINTS = 0x0000;
        /// <summary>
        /// 每两点相连成为线段
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        public const uint GL_LINES = 0x0001;
        /// <summary>
        ///顶点相连成为一系列线段，连接最后一点与第一点
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        public const uint GL_LINE_LOOP = 0x0002;
        /// <summary>
        /// 顶点相连成为一系列线段
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        public const uint GL_LINE_STRIP = 0x0003;
        /// <summary>
        /// 三点相连成为一个三角形
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        public const uint GL_TRIANGLES = 0x0004;
        /// <summary>
        /// 相连的三角形带
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        public const uint GL_TRIANGLE_STRIP = 0x0005;
        /// <summary>
        /// 相连的三角形扇形
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        public const uint GL_TRIANGLE_FAN = 0x0006;
        /// <summary>
        /// 四点相连成为一个四边形
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        public const uint GL_QUADS = 0x0007;
        /// <summary>
        /// 相连的四边形带
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        public const uint GL_QUAD_STRIP = 0x0008;
        /// <summary>
        /// 简单，凸多边形的边界
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        public const uint GL_POLYGON = 0x0009; 

        #endregion

        #region BlendingFactorDest
        //  BlendingFactorDest
        public const uint GL_ZERO = 0;
        public const uint GL_ONE = 1;
        public const uint GL_SRC_COLOR = 0x0300;
        public const uint GL_ONE_MINUS_SRC_COLOR = 0x0301;
        public const uint GL_SRC_ALPHA = 0x0302;
        public const uint GL_ONE_MINUS_SRC_ALPHA = 0x0303;
        public const uint GL_DST_ALPHA = 0x0304;
        public const uint GL_ONE_MINUS_DST_ALPHA = 0x0305; 
        #endregion

        #region BlendingFactorSrc
        //  BlendingFactorSrc
        public const uint GL_DST_COLOR = 0x0306;
        public const uint GL_ONE_MINUS_DST_COLOR = 0x0307;
        public const uint GL_SRC_ALPHA_SATURATE = 0x0308; 
        #endregion

        #region Boolean

        public const uint GL_TRUE = 1;
        public const uint GL_FALSE = 0;
        
        #endregion

        #region ClipPlaneName

        public const uint GL_CLIP_PLANE0 = 0x3000;
        public const uint GL_CLIP_PLANE1 = 0x3001;
        public const uint GL_CLIP_PLANE2 = 0x3002;
        public const uint GL_CLIP_PLANE3 = 0x3003;
        public const uint GL_CLIP_PLANE4 = 0x3004;
        public const uint GL_CLIP_PLANE5 = 0x3005; 

        #endregion

        #region DataType

        public const uint GL_BYTE = 0x1400;
        public const uint GL_UNSIGNED_BYTE = 0x1401;
        public const uint GL_SHORT = 0x1402;
        public const uint GL_UNSIGNED_SHORT = 0x1403;
        public const uint GL_INT = 0x1404;
        public const uint GL_UNSIGNED_INT = 0x1405;
        public const uint GL_FLOAT = 0x1406;
        public const uint GL_2_BYTES = 0x1407;
        public const uint GL_3_BYTES = 0x1408;
        public const uint GL_4_BYTES = 0x1409;
        public const uint GL_DOUBLE = 0x140A;
 
        #endregion

        #region DrawBufferMode
        public const uint GL_NONE = 0;
        public const uint GL_FRONT_LEFT = 0x0400;
        public const uint GL_FRONT_RIGHT = 0x0401;
        public const uint GL_BACK_LEFT = 0x0402;
        public const uint GL_BACK_RIGHT = 0x0403;
        public const uint GL_FRONT = 0x0404;
        public const uint GL_BACK = 0x0405;
        public const uint GL_LEFT = 0x0406;
        public const uint GL_RIGHT = 0x0407;
        public const uint GL_FRONT_AND_BACK = 0x0408;
        public const uint GL_AUX0 = 0x0409;
        public const uint GL_AUX1 = 0x040A;
        public const uint GL_AUX2 = 0x040B;
        public const uint GL_AUX3 = 0x040C; 
        #endregion

        #region ErrorCode

        public const uint GL_NO_ERROR = 0;
        public const uint GL_INVALID_ENUM = 0x0500;
        public const uint GL_INVALID_VALUE = 0x0501;
        public const uint GL_INVALID_OPERATION = 0x0502;
        public const uint GL_STACK_OVERFLOW = 0x0503;
        public const uint GL_STACK_UNDERFLOW = 0x0504;
        public const uint GL_OUT_OF_MEMORY = 0x0505;
        
        #endregion

        #region FeedBackMode

        public const uint GL_2D = 0x0600;
        public const uint GL_3D = 0x0601;
        public const uint GL_4D_COLOR = 0x0602;
        public const uint GL_3D_COLOR_TEXTURE = 0x0603;
        public const uint GL_4D_COLOR_TEXTURE = 0x0604; 

        #endregion

        #region FeedBackToken

        public const uint GL_PASS_THROUGH_TOKEN = 0x0700;
        public const uint GL_POINT_TOKEN = 0x0701;
        public const uint GL_LINE_TOKEN = 0x0702;
        public const uint GL_POLYGON_TOKEN = 0x0703;
        public const uint GL_BITMAP_TOKEN = 0x0704;
        public const uint GL_DRAW_PIXEL_TOKEN = 0x0705;
        public const uint GL_COPY_PIXEL_TOKEN = 0x0706;
        public const uint GL_LINE_RESET_TOKEN = 0x0707; 

        #endregion

        #region FogMode

        public const uint GL_EXP = 0x0800;
        public const uint GL_EXP2 = 0x0801;

        #endregion

        #region FrontFaceDirection

        //   FrontFaceDirection
        public const uint GL_CW = 0x0900;
        public const uint GL_CCW = 0x0901; 

        #endregion

        #region GetMapTarget 
        //    GetMapTarget 
        public const uint GL_COEFF = 0x0A00;
        public const uint GL_ORDER = 0x0A01;
        public const uint GL_DOMAIN = 0x0A02; 
        #endregion

        //   GetTarget
        /// <summary>
        /// 当前颜色
        /// </summary>
        /// <value>(1,1,1,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>Current</PropertyGroup>
        public const uint GL_CURRENT_COLOR = 0x0B00;
        /// <summary>
        /// 当前颜色索引
        /// </summary>
        /// <value>1</value>
        /// <see cref=""/>
        /// <PropertyGroup>Current</PropertyGroup>
        public const uint GL_CURRENT_INDEX = 0x0B01;
        /// <summary>
        /// 当前法线
        /// </summary>
        /// <value>(0,0,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>Current</PropertyGroup>
        public const uint GL_CURRENT_NORMAL = 0x0B02;
        /// <summary>
        /// 当前纹理坐标
        /// </summary>
        /// <value>(0,0,0,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>Current</PropertyGroup>
        public const uint GL_CURRENT_TEXTURE_COORDS = 0x0B03;
        /// <summary>
        /// 与光栅位置相关的颜色
        /// </summary>
        /// <value>(1,1,1,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>Current</PropertyGroup>
        public const uint GL_CURRENT_RASTER_COLOR = 0x0B04;
        /// <summary>
        /// 与光栅位置相关的颜色索引
        /// </summary>
        /// <value>1</value>
        /// <see cref=""/>
        /// <PropertyGroup>Current</PropertyGroup>
        public const uint GL_CURRENT_RASTER_INDEX = 0x0B05;
        /// <summary>
        /// 与光栅位置相关的纹理坐标
        /// </summary>
        /// <value>(0,0,0,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>Current</PropertyGroup>
        public const uint GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06;
        /// <summary>
        /// 当前光栅位置
        /// </summary>
        /// <value>(0,0,0,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>Current</PropertyGroup>
        public const uint GL_CURRENT_RASTER_POSITION = 0x0B07;
        /// <summary>
        /// 光栅位置有效位
        /// </summary>
        /// <value>GL_TRUE</value>
        /// <see cref=""/>
        /// <PropertyGroup>Current</PropertyGroup>
        public const uint GL_CURRENT_RASTER_POSITION_VALID = 0x0B08;
        /// <summary>
        /// 当前光栅距离
        /// </summary>
        /// <value>0</value>
        /// <see cref=""/>
        /// <PropertyGroup>Current</PropertyGroup>
        public const uint GL_CURRENT_RASTER_DISTANCE = 0x0B09;
        public const uint GL_POINT_SMOOTH = 0x0B10;
        public const uint GL_POINT_SIZE = 0x0B11;
        public const uint GL_POINT_SIZE_RANGE = 0x0B12;
        public const uint GL_POINT_SIZE_GRANULARITY = 0x0B13;
        public const uint GL_LINE_SMOOTH = 0x0B20;
        public const uint GL_LINE_WIDTH = 0x0B21;
        public const uint GL_LINE_WIDTH_RANGE = 0x0B22;
        public const uint GL_LINE_WIDTH_GRANULARITY = 0x0B23;
        public const uint GL_LINE_STIPPLE = 0x0B24;
        public const uint GL_LINE_STIPPLE_PATTERN = 0x0B25;
        public const uint GL_LINE_STIPPLE_REPEAT = 0x0B26;
        public const uint GL_LIST_MODE = 0x0B30;
        public const uint GL_MAX_LIST_NESTING = 0x0B31;
        public const uint GL_LIST_BASE = 0x0B32;
        public const uint GL_LIST_INDEX = 0x0B33;
        public const uint GL_POLYGON_MODE = 0x0B40;
        public const uint GL_POLYGON_SMOOTH = 0x0B41;
        public const uint GL_POLYGON_STIPPLE = 0x0B42;
        public const uint GL_EDGE_FLAG = 0x0B43;
        public const uint GL_CULL_FACE = 0x0B44;
        public const uint GL_CULL_FACE_MODE = 0x0B45;
        public const uint GL_FRONT_FACE = 0x0B46;

        #region LIGHT

        /// <summary>
        ///光照的启用状态
        /// </summary>
        /// <value>GL_FALSE</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_LIGHTING = 0x0B50;
        /// <summary>
        ///近视点
        /// </summary>
        /// <value>GL_FALSE</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51;
        /// <summary>
        ///使用双面光照
        /// </summary>
        /// <value>GL_FALSE</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_LIGHT_MODEL_TWO_SIDE = 0x0B52;
        /// <summary>
        ///全局环境光颜色
        /// </summary>
        /// <value>(0.2,0.2,0.2,0.1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_LIGHT_MODEL_AMBIENT = 0x0B53; 
        #endregion

        public const uint GL_SHADE_MODEL = 0x0B54;
        public const uint GL_COLOR_MATERIAL_FACE = 0x0B55;
        public const uint GL_COLOR_MATERIAL_PARAMETER = 0x0B56;
        public const uint GL_COLOR_MATERIAL = 0x0B57;

        #region FOG

        /// <summary>
        /// 雾的启用状态
        /// </summary>
        /// <value>GL_FALSE</value>
        /// <see cref=""/>
        /// <PropertyGroup>FOG</PropertyGroup>
        public const uint GL_FOG = 0x0B60;
        /// <summary>
        /// 雾颜色索引
        /// </summary>
        /// <value>0</value>
        /// <see cref=""/>
        /// <PropertyGroup>FOG</PropertyGroup>
        public const uint GL_FOG_INDEX = 0x0B61;
        /// <summary>
        /// 雾密度指数
        /// </summary>
        /// <value>1.0</value>
        /// <see cref=""/>
        /// <PropertyGroup>FOG</PropertyGroup>
        public const uint GL_FOG_DENSITY = 0x0B62;
        /// <summary>
        /// 线性雾密度起始值
        /// </summary>
        /// <value>0.0</value>
        /// <see cref=""/>
        /// <PropertyGroup>FOG</PropertyGroup>
        public const uint GL_FOG_START = 0x0B63;
        /// <summary>
        /// 线性雾密度结束值
        /// </summary>
        /// <value>1.0</value>
        /// <see cref=""/>
        /// <PropertyGroup>FOG</PropertyGroup>
        public const uint GL_FOG_END = 0x0B64;
        /// <summary>
        /// 雾模式
        /// </summary>
        /// <value>GL_EXP</value>
        /// <see cref=""/>
        /// <PropertyGroup>FOG</PropertyGroup>
        public const uint GL_FOG_MODE = 0x0B65;
        /// <summary>
        /// 雾颜色
        /// </summary>
        /// <value>(0,0,0,0)</value>
        /// <see cref=""/>
        /// <PropertyGroup>FOG</PropertyGroup>
        public const uint GL_FOG_COLOR = 0x0B66; 

        #endregion

        public const uint GL_DEPTH_RANGE = 0x0B70;
        public const uint GL_DEPTH_TEST = 0x0B71;
        public const uint GL_DEPTH_WRITEMASK = 0x0B72;
        public const uint GL_DEPTH_CLEAR_VALUE = 0x0B73;
        public const uint GL_DEPTH_FUNC = 0x0B74;
        public const uint GL_ACCUM_CLEAR_VALUE = 0x0B80;
        public const uint GL_STENCIL_TEST = 0x0B90;
        public const uint GL_STENCIL_CLEAR_VALUE = 0x0B91;
        public const uint GL_STENCIL_FUNC = 0x0B92;
        public const uint GL_STENCIL_VALUE_MASK = 0x0B93;
        public const uint GL_STENCIL_FAIL = 0x0B94;
        public const uint GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95;
        public const uint GL_STENCIL_PASS_DEPTH_PASS = 0x0B96;
        public const uint GL_STENCIL_REF = 0x0B97;
        public const uint GL_STENCIL_WRITEMASK = 0x0B98;
        public const uint GL_MATRIX_MODE = 0x0BA0;
        public const uint GL_NORMALIZE = 0x0BA1;
        public const uint GL_VIEWPORT = 0x0BA2;
        public const uint GL_MODELVIEW_STACK_DEPTH = 0x0BA3;
        public const uint GL_PROJECTION_STACK_DEPTH = 0x0BA4;
        public const uint GL_TEXTURE_STACK_DEPTH = 0x0BA5;
        public const uint GL_MODELVIEW_MATRIX = 0x0BA6;
        public const uint GL_PROJECTION_MATRIX = 0x0BA7;
        public const uint GL_TEXTURE_MATRIX = 0x0BA8;
        public const uint GL_ATTRIB_STACK_DEPTH = 0x0BB0;
        public const uint GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1;
        public const uint GL_ALPHA_TEST = 0x0BC0;
        public const uint GL_ALPHA_TEST_FUNC = 0x0BC1;
        public const uint GL_ALPHA_TEST_REF = 0x0BC2;
        public const uint GL_DITHER = 0x0BD0;
        public const uint GL_BLEND_DST = 0x0BE0;
        public const uint GL_BLEND_SRC = 0x0BE1;
        public const uint GL_BLEND = 0x0BE2;
        public const uint GL_LOGIC_OP_MODE = 0x0BF0;
        public const uint GL_INDEX_LOGIC_OP = 0x0BF1;
        public const uint GL_COLOR_LOGIC_OP = 0x0BF2;
        public const uint GL_AUX_BUFFERS = 0x0C00;
        public const uint GL_DRAW_BUFFER = 0x0C01;
        public const uint GL_READ_BUFFER = 0x0C02;
        public const uint GL_SCISSOR_BOX = 0x0C10;
        public const uint GL_SCISSOR_TEST = 0x0C11;
        public const uint GL_INDEX_CLEAR_VALUE = 0x0C20;
        public const uint GL_INDEX_WRITEMASK = 0x0C21;
        public const uint GL_COLOR_CLEAR_VALUE = 0x0C22;
        public const uint GL_COLOR_WRITEMASK = 0x0C23;
        public const uint GL_INDEX_MODE = 0x0C30;
        public const uint GL_RGBA_MODE = 0x0C31;
        public const uint GL_DOUBLEBUFFER = 0x0C32;
        public const uint GL_STEREO = 0x0C33;
        public const uint GL_RENDER_MODE = 0x0C40;

        #region HINT

        /// <summary>
        /// 透视修正
        /// </summary>
        /// <value>GL_DONT_CARE</value>
        /// <see cref=""/>
        /// <PropertyGroup>HINT</PropertyGroup>
        public const uint GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50;
        /// <summary>
        /// 点平滑
        /// </summary>
        /// <value>GL_DONT_CARE</value>
        /// <see cref=""/>
        /// <PropertyGroup>HINT</PropertyGroup>
        public const uint GL_POINT_SMOOTH_HINT = 0x0C51;
        /// <summary>
        /// 直线平滑
        /// </summary>
        /// <value>GL_DONT_CARE</value>
        /// <see cref=""/>
        /// <PropertyGroup>HINT</PropertyGroup>
        public const uint GL_LINE_SMOOTH_HINT = 0x0C52;
        /// <summary>
        ///多边形平滑
        /// </summary>
        /// <value>GL_DONT_CARE</value>
        /// <see cref=""/>
        /// <PropertyGroup>HINT</PropertyGroup>
        public const uint GL_POLYGON_SMOOTH_HINT = 0x0C53;
        /// <summary>
        /// 雾
        /// </summary>
        /// <value>GL_DONT_CARE</value>
        /// <see cref=""/>
        /// <PropertyGroup>HINT</PropertyGroup>
        public const uint GL_FOG_HINT = 0x0C54; 

        #endregion

        public const uint GL_TEXTURE_GEN_S = 0x0C60;
        public const uint GL_TEXTURE_GEN_T = 0x0C61;
        public const uint GL_TEXTURE_GEN_R = 0x0C62;
        public const uint GL_TEXTURE_GEN_Q = 0x0C63;
        /// <summary>
        /// 颜色索引
        /// </summary>
        public const uint GL_PIXEL_MAP_I_TO_I = 0x0C70;
        /// <summary>
        /// 模板索引
        /// </summary>
        public const uint GL_PIXEL_MAP_S_TO_S = 0x0C71;
        /// <summary>
        /// 颜色索引，值：R
        /// </summary>
        public const uint GL_PIXEL_MAP_I_TO_R = 0x0C72;
        /// <summary>
        /// 颜色索引，值：G
        /// </summary>
        public const uint GL_PIXEL_MAP_I_TO_G = 0x0C73;
        /// <summary>
        /// 颜色索引，值：B
        /// </summary>
        public const uint GL_PIXEL_MAP_I_TO_B = 0x0C74;
        /// <summary>
        /// 颜色索引，值：A
        /// </summary>
        public const uint GL_PIXEL_MAP_I_TO_A = 0x0C75;
        /// <summary>
        /// 索引:R，值：R
        /// </summary>
        public const uint GL_PIXEL_MAP_R_TO_R = 0x0C76;
        /// <summary>
        /// 索引:G，值：G
        /// </summary>
        public const uint GL_PIXEL_MAP_G_TO_G = 0x0C77;
        /// <summary>
        /// 索引:B，值：B
        /// </summary>
        public const uint GL_PIXEL_MAP_B_TO_B = 0x0C78;
        /// <summary>
        /// 索引:A，值：A
        /// </summary>
        public const uint GL_PIXEL_MAP_A_TO_A = 0x0C79;
        public const uint GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0;
        public const uint GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1;
        public const uint GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2;
        public const uint GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3;
        public const uint GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4;
        public const uint GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5;
        public const uint GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6;
        public const uint GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7;
        public const uint GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8;
        public const uint GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9;
        public const uint GL_UNPACK_SWAP_BYTES = 0x0CF0;
        public const uint GL_UNPACK_LSB_FIRST = 0x0CF1;
        public const uint GL_UNPACK_ROW_LENGTH = 0x0CF2;
        public const uint GL_UNPACK_SKIP_ROWS = 0x0CF3;
        public const uint GL_UNPACK_SKIP_PIXELS = 0x0CF4;
        public const uint GL_UNPACK_ALIGNMENT = 0x0CF5;
        public const uint GL_PACK_SWAP_BYTES = 0x0D00;
        public const uint GL_PACK_LSB_FIRST = 0x0D01;
        public const uint GL_PACK_ROW_LENGTH = 0x0D02;
        public const uint GL_PACK_SKIP_ROWS = 0x0D03;
        public const uint GL_PACK_SKIP_PIXELS = 0x0D04;
        public const uint GL_PACK_ALIGNMENT = 0x0D05;
        public const uint GL_MAP_COLOR = 0x0D10;
        public const uint GL_MAP_STENCIL = 0x0D11;
        public const uint GL_INDEX_SHIFT = 0x0D12;
        public const uint GL_INDEX_OFFSET = 0x0D13;
        public const uint GL_RED_SCALE = 0x0D14;
        public const uint GL_RED_BIAS = 0x0D15;
        public const uint GL_ZOOM_X = 0x0D16;
        public const uint GL_ZOOM_Y = 0x0D17;
        public const uint GL_GREEN_SCALE = 0x0D18;
        public const uint GL_GREEN_BIAS = 0x0D19;
        public const uint GL_BLUE_SCALE = 0x0D1A;
        public const uint GL_BLUE_BIAS = 0x0D1B;
        public const uint GL_ALPHA_SCALE = 0x0D1C;
        public const uint GL_ALPHA_BIAS = 0x0D1D;
        public const uint GL_DEPTH_SCALE = 0x0D1E;
        public const uint GL_DEPTH_BIAS = 0x0D1F;
        public const uint GL_MAX_EVAL_ORDER = 0x0D30;
        public const uint GL_MAX_LIGHTS = 0x0D31;
        public const uint GL_MAX_CLIP_PLANES = 0x0D32;
        public const uint GL_MAX_TEXTURE_SIZE = 0x0D33;
        public const uint GL_MAX_PIXEL_MAP_TABLE = 0x0D34;
        public const uint GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35;
        public const uint GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36;
        public const uint GL_MAX_NAME_STACK_DEPTH = 0x0D37;
        public const uint GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38;
        public const uint GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39;
        public const uint GL_MAX_VIEWPORT_DIMS = 0x0D3A;
        public const uint GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B;
        public const uint GL_SUBPIXEL_BITS = 0x0D50;
        public const uint GL_INDEX_BITS = 0x0D51;
        public const uint GL_RED_BITS = 0x0D52;
        public const uint GL_GREEN_BITS = 0x0D53;
        public const uint GL_BLUE_BITS = 0x0D54;
        public const uint GL_ALPHA_BITS = 0x0D55;
        public const uint GL_DEPTH_BITS = 0x0D56;
        public const uint GL_STENCIL_BITS = 0x0D57;
        public const uint GL_ACCUM_RED_BITS = 0x0D58;
        public const uint GL_ACCUM_GREEN_BITS = 0x0D59;
        public const uint GL_ACCUM_BLUE_BITS = 0x0D5A;
        public const uint GL_ACCUM_ALPHA_BITS = 0x0D5B;
        public const uint GL_NAME_STACK_DEPTH = 0x0D70;
        public const uint GL_AUTO_NORMAL = 0x0D80;
        public const uint GL_MAP1_COLOR_4 = 0x0D90;
        public const uint GL_MAP1_INDEX = 0x0D91;
        public const uint GL_MAP1_NORMAL = 0x0D92;
        public const uint GL_MAP1_TEXTURE_COORD_1 = 0x0D93;
        public const uint GL_MAP1_TEXTURE_COORD_2 = 0x0D94;
        public const uint GL_MAP1_TEXTURE_COORD_3 = 0x0D95;
        public const uint GL_MAP1_TEXTURE_COORD_4 = 0x0D96;
        public const uint GL_MAP1_VERTEX_3 = 0x0D97;
        public const uint GL_MAP1_VERTEX_4 = 0x0D98;
        public const uint GL_MAP2_COLOR_4 = 0x0DB0;
        public const uint GL_MAP2_INDEX = 0x0DB1;
        public const uint GL_MAP2_NORMAL = 0x0DB2;
        public const uint GL_MAP2_TEXTURE_COORD_1 = 0x0DB3;
        public const uint GL_MAP2_TEXTURE_COORD_2 = 0x0DB4;
        public const uint GL_MAP2_TEXTURE_COORD_3 = 0x0DB5;
        public const uint GL_MAP2_TEXTURE_COORD_4 = 0x0DB6;
        public const uint GL_MAP2_VERTEX_3 = 0x0DB7;
        public const uint GL_MAP2_VERTEX_4 = 0x0DB8;
        public const uint GL_MAP1_GRID_DOMAIN = 0x0DD0;
        public const uint GL_MAP1_GRID_SEGMENTS = 0x0DD1;
        public const uint GL_MAP2_GRID_DOMAIN = 0x0DD2;
        public const uint GL_MAP2_GRID_SEGMENTS = 0x0DD3;
        /// <summary>
        /// 1D纹理
        /// </summary>
        public const uint GL_TEXTURE_1D = 0x0DE0;
        /// <summary>
        /// 2D纹理
        /// </summary>
        public const uint GL_TEXTURE_2D = 0x0DE1;
        public const uint GL_FEEDBACK_BUFFER_POINTER = 0x0DF0;
        public const uint GL_FEEDBACK_BUFFER_SIZE = 0x0DF1;
        public const uint GL_FEEDBACK_BUFFER_TYPE = 0x0DF2;
        public const uint GL_SELECTION_BUFFER_POINTER = 0x0DF3;
        public const uint GL_SELECTION_BUFFER_SIZE = 0x0DF4;

        #region TextureParameter

        /// <summary>
        /// 纹理宽度
        /// </summary>
        public const uint GL_TEXTURE_WIDTH = 0x1000;
        /// <summary>
        /// 纹理高度
        /// </summary>
        public const uint GL_TEXTURE_HEIGHT = 0x1001;
        /// <summary>
        /// 纹理图像的内部格式
        /// </summary>
        public const uint GL_TEXTURE_INTERNAL_FORMAT = 0x1003;
        /// <summary>
        /// 纹理图像边框颜色
        /// </summary>
        public const uint GL_TEXTURE_BORDER_COLOR = 0x1004;
        /// <summary>
        /// 纹理图像边框宽度
        /// </summary>
        public const uint GL_TEXTURE_BORDER = 0x1005;
        
        #endregion

        #region HintMode
        //   HintMode
        public const uint GL_DONT_CARE = 0x1100;
        public const uint GL_FASTEST = 0x1101;
        public const uint GL_NICEST = 0x1102; 
        #endregion

        #region LightName
        public const uint GL_LIGHT0 = 0x4000;
        public const uint GL_LIGHT1 = 0x4001;
        public const uint GL_LIGHT2 = 0x4002;
        public const uint GL_LIGHT3 = 0x4003;
        public const uint GL_LIGHT4 = 0x4004;
        public const uint GL_LIGHT5 = 0x4005;
        public const uint GL_LIGHT6 = 0x4006;
        public const uint GL_LIGHT7 = 0x4007; 
        #endregion

        #region LightParameter
        /// <summary>
        /// 光源泛光强度的RGBA值
        /// </summary>
        /// <value>(0,0,0,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_AMBIENT = 0x1200;
        /// <summary>
        /// 光源漫反射强度的RGBA值
        /// </summary>
        /// <value>(1,1,1,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_DIFFUSE = 0x1201;
        /// <summary>
        /// 光源镜面反射强度的RGBA值
        /// </summary>
        /// <value>(1,1,1,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_SPECULAR = 0x1202;
        /// <summary>
        /// 光源的位置（x,y,z,w）
        /// </summary>
        /// <value>(0,0,1,0)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_POSITION = 0x1203;
        /// <summary>
        /// 聚光灯的方向（x,y,z）
        /// </summary>
        /// <value>(0,0,-1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_SPOT_DIRECTION = 0x1204;
        /// <summary>
        /// 聚光灯指数
        /// </summary>
        /// <value>0</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_SPOT_EXPONENT = 0x1205;
        /// <summary>
        /// 聚光灯的截止角度
        /// </summary>
        /// <value>180</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_SPOT_CUTOFF = 0x1206;
        /// <summary>
        /// 衰减因子常量
        /// </summary>
        /// <value>1</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_CONSTANT_ATTENUATION = 0x1207;
        /// <summary>
        ///线形衰减因子
        /// </summary>
        /// <value>0</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_LINEAR_ATTENUATION = 0x1208;
        /// <summary>
        ///二次衰减因子
        /// </summary>
        /// <value>0</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        public const uint GL_QUADRATIC_ATTENUATION = 0x1209; 
        #endregion

        #region ListMode
        public const uint GL_COMPILE = 0x1300;
        public const uint GL_COMPILE_AND_EXECUTE = 0x1301; 
        #endregion

        #region LogicOp
        public const uint GL_CLEAR = 0x1500;
        public const uint GL_AND = 0x1501;
        public const uint GL_AND_REVERSE = 0x1502;
        public const uint GL_COPY = 0x1503;
        public const uint GL_AND_INVERTED = 0x1504;
        public const uint GL_NOOP = 0x1505;
        public const uint GL_XOR = 0x1506;
        public const uint GL_OR = 0x1507;
        public const uint GL_NOR = 0x1508;
        public const uint GL_EQUIV = 0x1509;
        public const uint GL_INVERT = 0x150A;
        public const uint GL_OR_REVERSE = 0x150B;
        public const uint GL_COPY_INVERTED = 0x150C;
        public const uint GL_OR_INVERTED = 0x150D;
        public const uint GL_NAND = 0x150E;
        public const uint GL_SET = 0x150F; 
        #endregion

        #region MaterialParameter
        public const uint GL_EMISSION = 0x1600;
        public const uint GL_SHININESS = 0x1601;
        public const uint GL_AMBIENT_AND_DIFFUSE = 0x1602;
        public const uint GL_COLOR_INDEXES = 0x1603; 
        #endregion

        #region 矩阵模式
        /// <summary>
        /// 对模型视景矩阵堆栈应用随后的矩阵操作
        /// </summary>
        public const uint GL_MODELVIEW = 0x1700;
        /// <summary>
        /// 对投影矩阵应用随后的矩阵操作
        /// </summary>
        public const uint GL_PROJECTION = 0x1701;
        /// <summary>
        /// 对纹理矩阵堆栈应用随后的矩阵操作
        /// </summary>
        public const uint GL_TEXTURE = 0x1702; 
        #endregion

        #region PixelCopyType
        public const uint GL_COLOR = 0x1800;
        public const uint GL_DEPTH = 0x1801;
        public const uint GL_STENCIL = 0x1802; 
        #endregion

        #region 像素格式（在函数glReadPixels()或glDrawPixels()指定）
        /// <summary>
        /// 颜色索引
        /// </summary>
        public const uint GL_COLOR_INDEX = 0x1900;
        /// <summary>
        /// 模板索引
        /// </summary>
        public const uint GL_STENCIL_INDEX = 0x1901;
        /// <summary>
        /// 深度分量
        /// </summary>
        public const uint GL_DEPTH_COMPONENT = 0x1902;
        /// <summary>
        /// 红色分量
        /// </summary>
        public const uint GL_RED = 0x1903;
        /// <summary>
        ///绿色分量
        /// </summary>
        public const uint GL_GREEN = 0x1904;
        /// <summary>
        /// 蓝色分量
        /// </summary>
        public const uint GL_BLUE = 0x1905;
        /// <summary>
        /// alpha分量
        /// </summary>
        public const uint GL_ALPHA = 0x1906;
        /// <summary>
        ///依次为红色分量、绿色分量、和蓝色分量
        /// </summary>
        public const uint GL_RGB = 0x1907;
        /// <summary>
        ///依次为红色分量、绿色分量、和蓝色分量和alpha分量
        /// </summary>
        public const uint GL_RGBA = 0x1908;
        /// <summary>
        /// 亮度分量
        /// </summary>
        public const uint GL_LUMINANCE = 0x1909;
        /// <summary>
        /// 亮度分量和alpha分量
        /// </summary>
        public const uint GL_LUMINANCE_ALPHA = 0x190A;
        
        #endregion
        //   PixelType
        public const uint GL_BITMAP = 0x1A00;

        #region 多边形模式

        /// <summary>
        /// 点模式
        /// </summary>
        public const uint GL_POINT = 0x1B00;
        /// <summary>
        /// 线模式
        /// </summary>
        public const uint GL_LINE = 0x1B01;
        /// <summary>
        /// 填充模式
        /// </summary>
        public const uint GL_FILL = 0x1B02; 

        #endregion

        #region RenderingMode
        //   RenderingMode 
        public const uint GL_RENDER = 0x1C00;
        public const uint GL_FEEDBACK = 0x1C01;
        public const uint GL_SELECT = 0x1C02; 
        #endregion

        //   ShadingModel
        #region ShadingModel
        public const uint GL_FLAT = 0x1D00;
        public const uint GL_SMOOTH = 0x1D01; 
        #endregion

        //   StencilOp	
        #region StencilOp
        /// <summary>
        /// 保存当前的模板缓存区值
        /// </summary>
        public const uint GL_KEEP = 0x1E00;
        /// <summary>
        /// 用glStencilFunc函数所指定的参考值替换模板参数值
        /// </summary>
        public const uint GL_REPLACE = 0x1E01;
        /// <summary>
        /// 增加当前的蒙板缓存区值，但限制在允许范围内
        /// </summary>
        public const uint GL_INCR = 0x1E02;
        /// <summary>
        /// 减少当前的模板缓存区值，但限制在允许的范围内
        /// </summary>
        public const uint GL_DECR = 0x1E03; 
        #endregion

        //   StringName
        #region StringName
        public const uint GL_VENDOR = 0x1F00;
        public const uint GL_RENDERER = 0x1F01;
        public const uint GL_VERSION = 0x1F02;
        public const uint GL_EXTENSIONS = 0x1F03; 
        #endregion

        //   TextureCoordName
        #region TextureCoordName
        public const uint GL_S = 0x2000;
        public const uint GL_T = 0x2001;
        public const uint GL_R = 0x2002;
        public const uint GL_Q = 0x2003; 
        #endregion

        #region TextureEnvMode
        public const uint GL_MODULATE = 0x2100;
        public const uint GL_DECAL = 0x2101; 
        #endregion

        #region TextureEnvParameter
        public const uint GL_TEXTURE_ENV_MODE = 0x2200;
        public const uint GL_TEXTURE_ENV_COLOR = 0x2201; 
        #endregion

        //   TextureEnvTarget
        public const uint GL_TEXTURE_ENV = 0x2300;

        #region TextureGenMode
        public const uint GL_EYE_LINEAR = 0x2400;
        public const uint GL_OBJECT_LINEAR = 0x2401;
        public const uint GL_SPHERE_MAP = 0x2402; 
        #endregion
 
        #region TextureGenParameter
        public const uint GL_TEXTURE_GEN_MODE = 0x2500;
        public const uint GL_OBJECT_PLANE = 0x2501;
        public const uint GL_EYE_PLANE = 0x2502; 
        #endregion

        #region TextureMagFilter
        public const uint GL_NEAREST = 0x2600;
        public const uint GL_LINEAR = 0x2601; 
        #endregion
 
        #region TextureMinFilter
        public const uint GL_NEAREST_MIPMAP_NEAREST = 0x2700;
        public const uint GL_LINEAR_MIPMAP_NEAREST = 0x2701;
        public const uint GL_NEAREST_MIPMAP_LINEAR = 0x2702;
        public const uint GL_LINEAR_MIPMAP_LINEAR = 0x2703; 
        #endregion

        #region TextureParameterName
        public const uint GL_TEXTURE_MAG_FILTER = 0x2800;
        public const uint GL_TEXTURE_MIN_FILTER = 0x2801;
        public const uint GL_TEXTURE_WRAP_S = 0x2802;
        public const uint GL_TEXTURE_WRAP_T = 0x2803; 
        #endregion

        #region TextureWrapMode
        public const uint GL_CLAMP = 0x2900;
        public const uint GL_REPEAT = 0x2901; 
        #endregion

        #region 客户端属性组

        /// <summary>
        /// 像素存储
        /// </summary>
        public const uint GL_CLIENT_PIXEL_STORE_BIT = 0x00000001;
        /// <summary>
        /// 顶点数组
        /// </summary>
        public const uint GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002;
        /// <summary>
        /// 
        /// </summary>
        public const uint GL_CLIENT_ALL_ATTRIB_BITS = 0xffffffff;
        
        #endregion

        #region  Polygon Offset
        public const uint GL_POLYGON_OFFSET_FACTOR = 0x8038;
        public const uint GL_POLYGON_OFFSET_UNITS = 0x2A00;
        public const uint GL_POLYGON_OFFSET_POINT = 0x2A01;
        public const uint GL_POLYGON_OFFSET_LINE = 0x2A02;
        public const uint GL_POLYGON_OFFSET_FILL = 0x8037; 
        #endregion


        #region Texture
        public const uint GL_ALPHA4 = 0x803B;
        public const uint GL_ALPHA8 = 0x803C;
        public const uint GL_ALPHA12 = 0x803D;
        public const uint GL_ALPHA16 = 0x803E;
        public const uint GL_LUMINANCE4 = 0x803F;
        public const uint GL_LUMINANCE8 = 0x8040;
        public const uint GL_LUMINANCE12 = 0x8041;
        public const uint GL_LUMINANCE16 = 0x8042;
        public const uint GL_LUMINANCE4_ALPHA4 = 0x8043;
        public const uint GL_LUMINANCE6_ALPHA2 = 0x8044;
        public const uint GL_LUMINANCE8_ALPHA8 = 0x8045;
        public const uint GL_LUMINANCE12_ALPHA4 = 0x8046;
        public const uint GL_LUMINANCE12_ALPHA12 = 0x8047;
        public const uint GL_LUMINANCE16_ALPHA16 = 0x8048;
        public const uint GL_INTENSITY = 0x8049;
        public const uint GL_INTENSITY4 = 0x804A;
        public const uint GL_INTENSITY8 = 0x804B;
        public const uint GL_INTENSITY12 = 0x804C;
        public const uint GL_INTENSITY16 = 0x804D;
        public const uint GL_R3_G3_B2 = 0x2A10;
        public const uint GL_RGB4 = 0x804F;
        public const uint GL_RGB5 = 0x8050;
        public const uint GL_RGB8 = 0x8051;
        public const uint GL_RGB10 = 0x8052;
        public const uint GL_RGB12 = 0x8053;
        public const uint GL_RGB16 = 0x8054;
        public const uint GL_RGBA2 = 0x8055;
        public const uint GL_RGBA4 = 0x8056;
        public const uint GL_RGB5_A1 = 0x8057;
        public const uint GL_RGBA8 = 0x8058;
        public const uint GL_RGB10_A2 = 0x8059;
        public const uint GL_RGBA12 = 0x805A;
        public const uint GL_RGBA16 = 0x805B;
        public const uint GL_TEXTURE_RED_SIZE = 0x805C;
        public const uint GL_TEXTURE_GREEN_SIZE = 0x805D;
        public const uint GL_TEXTURE_BLUE_SIZE = 0x805E;
        public const uint GL_TEXTURE_ALPHA_SIZE = 0x805F;
        public const uint GL_TEXTURE_LUMINANCE_SIZE = 0x8060;
        public const uint GL_TEXTURE_INTENSITY_SIZE = 0x8061;
        public const uint GL_PROXY_TEXTURE_1D = 0x8063;
        public const uint GL_PROXY_TEXTURE_2D = 0x8064; 
        #endregion

        #region Texture object
        public const uint GL_TEXTURE_PRIORITY = 0x8066;
        public const uint GL_TEXTURE_RESIDENT = 0x8067;
        public const uint GL_TEXTURE_BINDING_1D = 0x8068;
        public const uint GL_TEXTURE_BINDING_2D = 0x8069; 
        #endregion

        #region Vertex array
        public const uint GL_VERTEX_ARRAY = 0x8074;
        public const uint GL_NORMAL_ARRAY = 0x8075;
        public const uint GL_COLOR_ARRAY = 0x8076;
        public const uint GL_INDEX_ARRAY = 0x8077;
        public const uint GL_TEXTURE_COORD_ARRAY = 0x8078;
        public const uint GL_EDGE_FLAG_ARRAY = 0x8079;
        public const uint GL_VERTEX_ARRAY_SIZE = 0x807A;
        public const uint GL_VERTEX_ARRAY_TYPE = 0x807B;
        public const uint GL_VERTEX_ARRAY_STRIDE = 0x807C;
        public const uint GL_NORMAL_ARRAY_TYPE = 0x807E;
        public const uint GL_NORMAL_ARRAY_STRIDE = 0x807F;
        public const uint GL_COLOR_ARRAY_SIZE = 0x8081;
        public const uint GL_COLOR_ARRAY_TYPE = 0x8082;
        public const uint GL_COLOR_ARRAY_STRIDE = 0x8083;
        public const uint GL_INDEX_ARRAY_TYPE = 0x8085;
        public const uint GL_INDEX_ARRAY_STRIDE = 0x8086;
        public const uint GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088;
        public const uint GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089;
        public const uint GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A;
        public const uint GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C;
        public const uint GL_VERTEX_ARRAY_POINTER = 0x808E;
        public const uint GL_NORMAL_ARRAY_POINTER = 0x808F;
        public const uint GL_COLOR_ARRAY_POINTER = 0x8090;
        public const uint GL_INDEX_ARRAY_POINTER = 0x8091;
        public const uint GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092;
        public const uint GL_EDGE_FLAG_ARRAY_POINTER = 0x8093;
        public const uint GL_V2F = 0x2A20;
        public const uint GL_V3F = 0x2A21;
        public const uint GL_C4UB_V2F = 0x2A22;
        public const uint GL_C4UB_V3F = 0x2A23;
        public const uint GL_C3F_V3F = 0x2A24;
        public const uint GL_N3F_V3F = 0x2A25;
        public const uint GL_C4F_N3F_V3F = 0x2A26;
        public const uint GL_T2F_V3F = 0x2A27;
        public const uint GL_T4F_V4F = 0x2A28;
        public const uint GL_T2F_C4UB_V3F = 0x2A29;
        public const uint GL_T2F_C3F_V3F = 0x2A2A;
        public const uint GL_T2F_N3F_V3F = 0x2A2B;
        public const uint GL_T2F_C4F_N3F_V3F = 0x2A2C;
        public const uint GL_T4F_C4F_N3F_V4F = 0x2A2D; 
        #endregion

        #region Extensions
        public const uint GL_EXT_vertex_array = 1;
        public const uint GL_EXT_bgra = 1;
        public const uint GL_EXT_paletted_texture = 1;
        public const uint GL_WIN_swap_hint = 1;
        public const uint GL_WIN_draw_range_elements = 1; 
        #endregion

        #region EXT_vertex_array 
        public const uint GL_VERTEX_ARRAY_EXT = 0x8074;
        public const uint GL_NORMAL_ARRAY_EXT = 0x8075;
        public const uint GL_COLOR_ARRAY_EXT = 0x8076;
        public const uint GL_INDEX_ARRAY_EXT = 0x8077;
        public const uint GL_TEXTURE_COORD_ARRAY_EXT = 0x8078;
        public const uint GL_EDGE_FLAG_ARRAY_EXT = 0x8079;
        public const uint GL_VERTEX_ARRAY_SIZE_EXT = 0x807A;
        public const uint GL_VERTEX_ARRAY_TYPE_EXT = 0x807B;
        public const uint GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C;
        public const uint GL_VERTEX_ARRAY_COUNT_EXT = 0x807D;
        public const uint GL_NORMAL_ARRAY_TYPE_EXT = 0x807E;
        public const uint GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F;
        public const uint GL_NORMAL_ARRAY_COUNT_EXT = 0x8080;
        public const uint GL_COLOR_ARRAY_SIZE_EXT = 0x8081;
        public const uint GL_COLOR_ARRAY_TYPE_EXT = 0x8082;
        public const uint GL_COLOR_ARRAY_STRIDE_EXT = 0x8083;
        public const uint GL_COLOR_ARRAY_COUNT_EXT = 0x8084;
        public const uint GL_INDEX_ARRAY_TYPE_EXT = 0x8085;
        public const uint GL_INDEX_ARRAY_STRIDE_EXT = 0x8086;
        public const uint GL_INDEX_ARRAY_COUNT_EXT = 0x8087;
        public const uint GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088;
        public const uint GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089;
        public const uint GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A;
        public const uint GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B;
        public const uint GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C;
        public const uint GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D;
        public const uint GL_VERTEX_ARRAY_POINTER_EXT = 0x808E;
        public const uint GL_NORMAL_ARRAY_POINTER_EXT = 0x808F;
        public const uint GL_COLOR_ARRAY_POINTER_EXT = 0x8090;
        public const uint GL_INDEX_ARRAY_POINTER_EXT = 0x8091;
        public const uint GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092;
        public const uint GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093;
        public const uint GL_DOUBLE_EXT = 1;/*DOUBLE*/ 
        #endregion
   
        #region EXT_paletted_texture
        public const uint GL_COLOR_TABLE_FORMAT_EXT = 0x80D8;
        public const uint GL_COLOR_TABLE_WIDTH_EXT = 0x80D9;
        public const uint GL_COLOR_TABLE_RED_SIZE_EXT = 0x80DA;
        public const uint GL_COLOR_TABLE_GREEN_SIZE_EXT = 0x80DB;
        public const uint GL_COLOR_TABLE_BLUE_SIZE_EXT = 0x80DC;
        public const uint GL_COLOR_TABLE_ALPHA_SIZE_EXT = 0x80DD;
        public const uint GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = 0x80DE;
        public const uint GL_COLOR_TABLE_INTENSITY_SIZE_EXT = 0x80DF;
        public const uint GL_COLOR_INDEX1_EXT = 0x80E2;
        public const uint GL_COLOR_INDEX2_EXT = 0x80E3;
        public const uint GL_COLOR_INDEX4_EXT = 0x80E4;
        public const uint GL_COLOR_INDEX8_EXT = 0x80E5;
        public const uint GL_COLOR_INDEX12_EXT = 0x80E6;
        public const uint GL_COLOR_INDEX16_EXT = 0x80E7; 
        #endregion

        #region WIN_draw_range_elements
        public const uint GL_MAX_ELEMENTS_VERTICES_WIN = 0x80E8;
        public const uint GL_MAX_ELEMENTS_INDICES_WIN = 0x80E9; 
        #endregion

        #region WIN_phong_shading
        public const uint GL_PHONG_WIN = 0x80EA;
        public const uint GL_PHONG_HINT_WIN = 0x80EB; 
        #endregion


        //   WIN_specular_fog 
        public uint FOG_SPECULAR_TEXTURE_WIN = 0x80EC;

        #endregion

        #region 1.2

        public const uint GL_UNSIGNED_BYTE_3_3_2 = 0x8032;
        public const uint GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033;
        public const uint GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034;
        public const uint GL_UNSIGNED_INT_8_8_8_8 = 0x8035;
        public const uint GL_UNSIGNED_INT_10_10_10_2 = 0x8036;
        public const uint GL_TEXTURE_BINDING_3D = 0x806A;
        public const uint GL_PACK_SKIP_IMAGES = 0x806B;
        public const uint GL_PACK_IMAGE_HEIGHT = 0x806C;
        public const uint GL_UNPACK_SKIP_IMAGES = 0x806D;
        public const uint GL_UNPACK_IMAGE_HEIGHT = 0x806E;

        /// <summary>
        /// 3D纹理
        /// </summary>
        public const uint GL_TEXTURE_3D = 0x806F;
        public const uint GL_PROXY_TEXTURE_3D = 0x8070;
        public const uint GL_TEXTURE_DEPTH = 0x8071;
        public const uint GL_TEXTURE_WRAP_R = 0x8072;
        public const uint GL_MAX_3D_TEXTURE_SIZE = 0x8073;
        /// <summary>
        /// 封装成无符号8位整数，有效的像素格式GL_RGB
        /// </summary>
        public const uint GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362;
        /// <summary>
        /// 封装成无符号16位整数，有效的像素格式GL_RGB
        /// </summary>
        public const uint GL_UNSIGNED_SHORT_5_6_5 = 0x8363;
        /// <summary>
        /// 封装成无符号16位整数，有效的像素格式GL_RGB
        /// </summary>
        public const uint GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364;
        /// <summary>
        /// 封装成无符号16位整数，有效的像素格式GL_RGBA、GL_BGRA
        /// </summary>
        public const uint GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365;
        /// <summary>
        /// 封装成无符号16位整数，有效的像素格式GL_RGBA、GL_BGRA
        /// </summary>
        public const uint GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366;
        /// <summary>
        /// 封装成无符号32位整数，有效的像素格式GL_RGBA、GL_BGRA
        /// </summary>
        public const uint GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367;
        /// <summary>
        /// 封装成无符号32位整数，有效的像素格式GL_RGBA、GL_BGRA
        /// </summary>
        public const uint GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368;
        /// <summary>
        /// 依次为蓝色分量、绿色分量、红色分量
        /// </summary>
        public const uint GL_BGR = 0x80E0;
        /// <summary>
        /// 依次为蓝色分量、绿色分量、红色分量和alpha分量
        /// </summary>
        public const uint GL_BGRA = 0x80E1;
        public const uint GL_MAX_ELEMENTS_VERTICES = 0x80E8;
        public const uint GL_MAX_ELEMENTS_INDICES = 0x80E9;
        public const uint GL_CLAMP_TO_EDGE = 0x812F;
        public const uint GL_TEXTURE_MIN_LOD = 0x813A;
        public const uint GL_TEXTURE_MAX_LOD = 0x813B;
        public const uint GL_TEXTURE_BASE_LEVEL = 0x813C;
        public const uint GL_TEXTURE_MAX_LEVEL = 0x813D;
        public const uint GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12;
        public const uint GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13;
        public const uint GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22;
        public const uint GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23;
        public const uint GL_ALIASED_LINE_WIDTH_RANGE = 0x846E;

        #endregion

        #region 1.3
        //  Constants
        public const uint GL_TEXTURE0 = 0x84C0;
        public const uint GL_TEXTURE1 = 0x84C1;
        public const uint GL_TEXTURE2 = 0x84C2;
        public const uint GL_TEXTURE3 = 0x84C3;
        public const uint GL_TEXTURE4 = 0x84C4;
        public const uint GL_TEXTURE5 = 0x84C5;
        public const uint GL_TEXTURE6 = 0x84C6;
        public const uint GL_TEXTURE7 = 0x84C7;
        public const uint GL_TEXTURE8 = 0x84C8;
        public const uint GL_TEXTURE9 = 0x84C9;
        public const uint GL_TEXTURE10 = 0x84CA;
        public const uint GL_TEXTURE11 = 0x84CB;
        public const uint GL_TEXTURE12 = 0x84CC;
        public const uint GL_TEXTURE13 = 0x84CD;
        public const uint GL_TEXTURE14 = 0x84CE;
        public const uint GL_TEXTURE15 = 0x84CF;
        public const uint GL_TEXTURE16 = 0x84D0;
        public const uint GL_TEXTURE17 = 0x84D1;
        public const uint GL_TEXTURE18 = 0x84D2;
        public const uint GL_TEXTURE19 = 0x84D3;
        public const uint GL_TEXTURE20 = 0x84D4;
        public const uint GL_TEXTURE21 = 0x84D5;
        public const uint GL_TEXTURE22 = 0x84D6;
        public const uint GL_TEXTURE23 = 0x84D7;
        public const uint GL_TEXTURE24 = 0x84D8;
        public const uint GL_TEXTURE25 = 0x84D9;
        public const uint GL_TEXTURE26 = 0x84DA;
        public const uint GL_TEXTURE27 = 0x84DB;
        public const uint GL_TEXTURE28 = 0x84DC;
        public const uint GL_TEXTURE29 = 0x84DD;
        public const uint GL_TEXTURE30 = 0x84DE;
        public const uint GL_TEXTURE31 = 0x84DF;
        public const uint GL_ACTIVE_TEXTURE = 0x84E0;

        #region SAMPLE

        /// <summary>
        /// 多重采样的启用状态
        /// </summary>
        /// <value>GL_TRUE</value>
        /// <see cref=""/>
        /// <PropertyGroup>SAMPLE</PropertyGroup>
        public const uint GL_MULTISAMPLE = 0x809D;
        /// <summary>
        /// 根据alpha值修改覆盖率
        /// </summary>
        /// <value>GL_FALSE</value>
        /// <see cref=""/>
        /// <PropertyGroup>SAMPLE</PropertyGroup>
        public const uint GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
        /// <summary>
        /// 将alpha设置为最大
        /// </summary>
        /// <value>GL_FALSE</value>
        /// <see cref=""/>
        /// <PropertyGroup>SAMPLE</PropertyGroup>
        public const uint GL_SAMPLE_ALPHA_TO_ONE = 0x809F;
        /// <summary>
        /// 通过AND运算来修改覆盖率
        /// </summary>
        /// <value>GL_FALSE</value>
        /// <see cref=""/>
        /// <PropertyGroup>SAMPLE</PropertyGroup>
        public const uint GL_SAMPLE_COVERAGE = 0x80A0;
        public const uint GL_SAMPLE_BUFFERS = 0x80A8;
        public const uint GL_SAMPLES = 0x80A9;
        /// <summary>
        /// 覆盖率掩码的值
        /// </summary>
        /// <value>1</value>
        /// <see cref=""/>
        /// <PropertyGroup>SAMPLE</PropertyGroup>
        public const uint GL_SAMPLE_COVERAGE_VALUE = 0x80AA;
        /// <summary>
        /// 反转覆盖率掩码
        /// </summary>
        /// <value>GL_FALSE</value>
        /// <see cref=""/>
        /// <PropertyGroup>SAMPLE</PropertyGroup>
        public const uint GL_SAMPLE_COVERAGE_INVERT = 0x80AB; 
        #endregion

        #region TEXTURE
        /// <summary>
        /// 立方图纹理映射的启用状态
        /// </summary>
        /// <value>GL_FALSE</value>
        /// <see cref=""/>
        /// <PropertyGroup>TEXTURE</PropertyGroup>
        public const uint GL_TEXTURE_CUBE_MAP = 0x8513;
        /// <summary>
        /// 使用参数GL_TEXTURE_CUBE_MAP绑定的纹理对象
        /// </summary>
        /// <value>0</value>
        /// <see cref=""/>
        /// <PropertyGroup>TEXTURE</PropertyGroup>
        public const uint GL_TEXTURE_BINDING_CUBE_MAP = 0x8514;
        /// <summary>
        /// +x面的立方图纹理图像
        /// </summary>
        /// <value></value>
        /// <see cref=""/>
        /// <PropertyGroup>TEXTURE</PropertyGroup>
        public const uint GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
        /// <summary>
        /// -x面的立方图纹理图像
        /// </summary>
        /// <value></value>
        /// <see cref=""/>
        /// <PropertyGroup>TEXTURE</PropertyGroup>
        public const uint GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
        /// <summary>
        /// +y面的立方图纹理图像
        /// </summary>
        /// <value></value>
        /// <see cref=""/>
        /// <PropertyGroup>TEXTURE</PropertyGroup>
        public const uint GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
        /// <summary>
        /// -y面的立方图纹理图像
        /// </summary>
        /// <value></value>
        /// <see cref=""/>
        /// <PropertyGroup>TEXTURE</PropertyGroup>
        public const uint GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
        /// <summary>
        /// +z面的立方图纹理图像
        /// </summary>
        /// <value></value>
        /// <see cref=""/>
        /// <PropertyGroup>TEXTURE</PropertyGroup>
        public const uint GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
        /// <summary>
        /// -z面的立方图纹理图像
        /// </summary>
        /// <value></value>
        /// <see cref=""/>
        /// <PropertyGroup>TEXTURE</PropertyGroup>
        public const uint GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A; 

        #endregion

        public const uint GL_PROXY_TEXTURE_CUBE_MAP = 0x851B;
        public const uint GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
        public const uint GL_COMPRESSED_RGB = 0x84ED;
        public const uint GL_COMPRESSED_RGBA = 0x84EE;
        public const uint GL_TEXTURE_COMPRESSION_HINT = 0x84EF;
        public const uint GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0;
        public const uint GL_TEXTURE_COMPRESSED = 0x86A1;
        public const uint GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2;
        public const uint GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3;
        public const uint GL_CLAMP_TO_BORDER = 0x812D;
        #endregion

        #region 1.4

        public const uint GL_BLEND_DST_RGB = 0x80C8;
        public const uint GL_BLEND_SRC_RGB = 0x80C9;
        public const uint GL_BLEND_DST_ALPHA = 0x80CA;
        public const uint GL_BLEND_SRC_ALPHA = 0x80CB;
        public const uint GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
        public const uint GL_DEPTH_COMPONENT16 = 0x81A5;
        public const uint GL_DEPTH_COMPONENT24 = 0x81A6;
        public const uint GL_DEPTH_COMPONENT32 = 0x81A7;
        public const uint GL_MIRRORED_REPEAT = 0x8370;
        public const uint GL_MAX_TEXTURE_LOD_BIAS = 0x84FD;
        public const uint GL_TEXTURE_LOD_BIAS = 0x8501;
        public const uint GL_INCR_WRAP = 0x8507;
        public const uint GL_DECR_WRAP = 0x8508;
        public const uint GL_TEXTURE_DEPTH_SIZE = 0x884A;
        public const uint GL_TEXTURE_COMPARE_MODE = 0x884C;
        public const uint GL_TEXTURE_COMPARE_FUNC = 0x884D;

        #endregion

        #region 1.5

        //  Constants
        public const uint GL_BUFFER_SIZE = 0x8764;
        public const uint GL_BUFFER_USAGE = 0x8765;
        public const uint GL_QUERY_COUNTER_BITS = 0x8864;
        public const uint GL_CURRENT_QUERY = 0x8865;
        public const uint GL_QUERY_RESULT = 0x8866;
        public const uint GL_QUERY_RESULT_AVAILABLE = 0x8867;
        public const uint GL_ARRAY_BUFFER = 0x8892;
        public const uint GL_ELEMENT_ARRAY_BUFFER = 0x8893;
        public const uint GL_ARRAY_BUFFER_BINDING = 0x8894;
        public const uint GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
        public const uint GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
        public const uint GL_READ_ONLY = 0x88B8;
        public const uint GL_WRITE_ONLY = 0x88B9;
        public const uint GL_READ_WRITE = 0x88BA;
        public const uint GL_BUFFER_ACCESS = 0x88BB;
        public const uint GL_BUFFER_MAPPED = 0x88BC;
        public const uint GL_BUFFER_MAP_POINTER = 0x88BD;
        public const uint GL_STREAM_DRAW = 0x88E0;
        public const uint GL_STREAM_READ = 0x88E1;
        public const uint GL_STREAM_COPY = 0x88E2;
        public const uint GL_STATIC_DRAW = 0x88E4;
        public const uint GL_STATIC_READ = 0x88E5;
        public const uint GL_STATIC_COPY = 0x88E6;
        public const uint GL_DYNAMIC_DRAW = 0x88E8;
        public const uint GL_DYNAMIC_READ = 0x88E9;
        public const uint GL_DYNAMIC_COPY = 0x88EA;
        public const uint GL_SAMPLES_PASSED = 0x8914;

        #endregion

        #region 2.0
        public const uint GL_BLEND_EQUATION_RGB = 0x8009;
        public const uint GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
        public const uint GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
        public const uint GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
        public const uint GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
        public const uint GL_CURRENT_VERTEX_ATTRIB = 0x8626;
        public const uint GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642;
        public const uint GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
        public const uint GL_STENCIL_BACK_FUNC = 0x8800;
        public const uint GL_STENCIL_BACK_FAIL = 0x8801;
        public const uint GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
        public const uint GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
        public const uint GL_MAX_DRAW_BUFFERS = 0x8824;
        public const uint GL_DRAW_BUFFER0 = 0x8825;
        public const uint GL_DRAW_BUFFER1 = 0x8826;
        public const uint GL_DRAW_BUFFER2 = 0x8827;
        public const uint GL_DRAW_BUFFER3 = 0x8828;
        public const uint GL_DRAW_BUFFER4 = 0x8829;
        public const uint GL_DRAW_BUFFER5 = 0x882A;
        public const uint GL_DRAW_BUFFER6 = 0x882B;
        public const uint GL_DRAW_BUFFER7 = 0x882C;
        public const uint GL_DRAW_BUFFER8 = 0x882D;
        public const uint GL_DRAW_BUFFER9 = 0x882E;
        public const uint GL_DRAW_BUFFER10 = 0x882F;
        public const uint GL_DRAW_BUFFER11 = 0x8830;
        public const uint GL_DRAW_BUFFER12 = 0x8831;
        public const uint GL_DRAW_BUFFER13 = 0x8832;
        public const uint GL_DRAW_BUFFER14 = 0x8833;
        public const uint GL_DRAW_BUFFER15 = 0x8834;
        public const uint GL_BLEND_EQUATION_ALPHA = 0x883D;
        public const uint GL_MAX_VERTEX_ATTRIBS = 0x8869;
        public const uint GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
        public const uint GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872;
        public const uint GL_FRAGMENT_SHADER = 0x8B30;
        public const uint GL_VERTEX_SHADER = 0x8B31;
        public const uint GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49;
        public const uint GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A;
        public const uint GL_MAX_VARYING_FLOATS = 0x8B4B;
        public const uint GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
        public const uint GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
        public const uint GL_SHADER_TYPE = 0x8B4F;
        public const uint GL_FLOAT_VEC2 = 0x8B50;
        public const uint GL_FLOAT_VEC3 = 0x8B51;
        public const uint GL_FLOAT_VEC4 = 0x8B52;
        public const uint GL_INT_VEC2 = 0x8B53;
        public const uint GL_INT_VEC3 = 0x8B54;
        public const uint GL_INT_VEC4 = 0x8B55;
        public const uint GL_BOOL = 0x8B56;
        public const uint GL_BOOL_VEC2 = 0x8B57;
        public const uint GL_BOOL_VEC3 = 0x8B58;
        public const uint GL_BOOL_VEC4 = 0x8B59;
        public const uint GL_FLOAT_MAT2 = 0x8B5A;
        public const uint GL_FLOAT_MAT3 = 0x8B5B;
        public const uint GL_FLOAT_MAT4 = 0x8B5C;
        public const uint GL_SAMPLER_1D = 0x8B5D;
        public const uint GL_SAMPLER_2D = 0x8B5E;
        public const uint GL_SAMPLER_3D = 0x8B5F;
        public const uint GL_SAMPLER_CUBE = 0x8B60;
        public const uint GL_SAMPLER_1D_SHADOW = 0x8B61;
        public const uint GL_SAMPLER_2D_SHADOW = 0x8B62;
        public const uint GL_DELETE_STATUS = 0x8B80;
        public const uint GL_COMPILE_STATUS = 0x8B81;
        public const uint GL_LINK_STATUS = 0x8B82;
        public const uint GL_VALIDATE_STATUS = 0x8B83;
        public const uint GL_INFO_LOG_LENGTH = 0x8B84;
        public const uint GL_ATTACHED_SHADERS = 0x8B85;
        public const uint GL_ACTIVE_UNIFORMS = 0x8B86;
        public const uint GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87;
        public const uint GL_SHADER_SOURCE_LENGTH = 0x8B88;
        public const uint GL_ACTIVE_ATTRIBUTES = 0x8B89;
        public const uint GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A;
        public const uint GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B;
        public const uint GL_SHADING_LANGUAGE_VERSION = 0x8B8C;
        public const uint GL_CURRENT_PROGRAM = 0x8B8D;
        public const uint GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0;
        public const uint GL_LOWER_LEFT = 0x8CA1;
        public const uint GL_UPPER_LEFT = 0x8CA2;
        public const uint GL_STENCIL_BACK_REF = 0x8CA3;
        public const uint GL_STENCIL_BACK_VALUE_MASK = 0x8CA4;
        public const uint GL_STENCIL_BACK_WRITEMASK = 0x8CA5;
        #endregion


        #region 2.1

        //  Constants
        public const uint GL_PIXEL_PACK_BUFFER = 0x88EB;
        public const uint GL_PIXEL_UNPACK_BUFFER = 0x88EC;
        public const uint GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED;
        public const uint GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF;
        public const uint GL_FLOAT_MAT2x3 = 0x8B65;
        public const uint GL_FLOAT_MAT2x4 = 0x8B66;
        public const uint GL_FLOAT_MAT3x2 = 0x8B67;
        public const uint GL_FLOAT_MAT3x4 = 0x8B68;
        public const uint GL_FLOAT_MAT4x2 = 0x8B69;
        public const uint GL_FLOAT_MAT4x3 = 0x8B6A;
        public const uint GL_SRGB = 0x8C40;
        public const uint GL_SRGB8 = 0x8C41;
        public const uint GL_SRGB_ALPHA = 0x8C42;
        public const uint GL_SRGB8_ALPHA8 = 0x8C43;
        public const uint GL_COMPRESSED_SRGB = 0x8C48;
        public const uint GL_COMPRESSED_SRGB_ALPHA = 0x8C49;
        #endregion

        #region 3.0
        public const uint GL_COMPARE_REF_TO_TEXTURE = 0x884E;
        public const uint GL_CLIP_DISTANCE0 = 0x3000;
        public const uint GL_CLIP_DISTANCE1 = 0x3001;
        public const uint GL_CLIP_DISTANCE2 = 0x3002;
        public const uint GL_CLIP_DISTANCE3 = 0x3003;
        public const uint GL_CLIP_DISTANCE4 = 0x3004;
        public const uint GL_CLIP_DISTANCE5 = 0x3005;
        public const uint GL_CLIP_DISTANCE6 = 0x3006;
        public const uint GL_CLIP_DISTANCE7 = 0x3007;
        public const uint GL_MAX_CLIP_DISTANCES = 0x0D32;
        public const uint GL_MAJOR_VERSION = 0x821B;
        public const uint GL_MINOR_VERSION = 0x821C;
        public const uint GL_NUM_EXTENSIONS = 0x821D;
        public const uint GL_CONTEXT_FLAGS = 0x821E;
        public const uint GL_DEPTH_BUFFER = 0x8223;
        public const uint GL_STENCIL_BUFFER = 0x8224;
        public const uint GL_COMPRESSED_RED = 0x8225;
        public const uint GL_COMPRESSED_RG = 0x8226;
        public const uint GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001;
        public const uint GL_RGBA32F = 0x8814;
        public const uint GL_RGB32F = 0x8815;
        public const uint GL_RGBA16F = 0x881A;
        public const uint GL_RGB16F = 0x881B;
        public const uint GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD;
        public const uint GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF;
        public const uint GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904;
        public const uint GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905;
        public const uint GL_CLAMP_READ_COLOR = 0x891C;
        public const uint GL_FIXED_ONLY = 0x891D;
        public const uint GL_MAX_VARYING_COMPONENTS = 0x8B4B;
        public const uint GL_TEXTURE_1D_ARRAY = 0x8C18;
        public const uint GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19;
        public const uint GL_TEXTURE_2D_ARRAY = 0x8C1A;
        public const uint GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B;
        public const uint GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C;
        public const uint GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D;
        public const uint GL_R11F_G11F_B10F = 0x8C3A;
        public const uint GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B;
        public const uint GL_RGB9_E5 = 0x8C3D;
        public const uint GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E;
        public const uint GL_TEXTURE_SHARED_SIZE = 0x8C3F;
        public const uint GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76;
        public const uint GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F;
        public const uint GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80;
        public const uint GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83;
        public const uint GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84;
        public const uint GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85;
        public const uint GL_PRIMITIVES_GENERATED = 0x8C87;
        public const uint GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88;
        public const uint GL_RASTERIZER_DISCARD = 0x8C89;
        public const uint GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A;
        public const uint GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B;
        public const uint GL_INTERLEAVED_ATTRIBS = 0x8C8C;
        public const uint GL_SEPARATE_ATTRIBS = 0x8C8D;
        public const uint GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E;
        public const uint GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F;
        public const uint GL_RGBA32UI = 0x8D70;
        public const uint GL_RGB32UI = 0x8D71;
        public const uint GL_RGBA16UI = 0x8D76;
        public const uint GL_RGB16UI = 0x8D77;
        public const uint GL_RGBA8UI = 0x8D7C;
        public const uint GL_RGB8UI = 0x8D7D;
        public const uint GL_RGBA32I = 0x8D82;
        public const uint GL_RGB32I = 0x8D83;
        public const uint GL_RGBA16I = 0x8D88;
        public const uint GL_RGB16I = 0x8D89;
        public const uint GL_RGBA8I = 0x8D8E;
        public const uint GL_RGB8I = 0x8D8F;
        public const uint GL_RED_INTEGER = 0x8D94;
        public const uint GL_GREEN_INTEGER = 0x8D95;
        public const uint GL_BLUE_INTEGER = 0x8D96;
        public const uint GL_RGB_INTEGER = 0x8D98;
        public const uint GL_RGBA_INTEGER = 0x8D99;
        public const uint GL_BGR_INTEGER = 0x8D9A;
        public const uint GL_BGRA_INTEGER = 0x8D9B;
        public const uint GL_SAMPLER_1D_ARRAY = 0x8DC0;
        public const uint GL_SAMPLER_2D_ARRAY = 0x8DC1;
        public const uint GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3;
        public const uint GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4;
        public const uint GL_SAMPLER_CUBE_SHADOW = 0x8DC5;
        public const uint GL_UNSIGNED_INT_VEC2 = 0x8DC6;
        public const uint GL_UNSIGNED_INT_VEC3 = 0x8DC7;
        public const uint GL_UNSIGNED_INT_VEC4 = 0x8DC8;
        public const uint GL_INT_SAMPLER_1D = 0x8DC9;
        public const uint GL_INT_SAMPLER_2D = 0x8DCA;
        public const uint GL_INT_SAMPLER_3D = 0x8DCB;
        public const uint GL_INT_SAMPLER_CUBE = 0x8DCC;
        public const uint GL_INT_SAMPLER_1D_ARRAY = 0x8DCE;
        public const uint GL_INT_SAMPLER_2D_ARRAY = 0x8DCF;
        public const uint GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1;
        public const uint GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2;
        public const uint GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3;
        public const uint GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4;
        public const uint GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6;
        public const uint GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7;
        public const uint GL_QUERY_WAIT = 0x8E13;
        public const uint GL_QUERY_NO_WAIT = 0x8E14;
        public const uint GL_QUERY_BY_REGION_WAIT = 0x8E15;
        public const uint GL_QUERY_BY_REGION_NO_WAIT = 0x8E16;
        public const uint GL_BUFFER_ACCESS_FLAGS = 0x911F;
        public const uint GL_BUFFER_MAP_LENGTH = 0x9120;
        public const uint GL_BUFFER_MAP_OFFSET = 0x9121;
        #endregion

        #region 3.1

        //  Constants
        public const uint GL_SAMPLER_2D_RECT = 0x8B63;
        public const uint GL_SAMPLER_2D_RECT_SHADOW = 0x8B64;
        public const uint GL_SAMPLER_BUFFER = 0x8DC2;
        public const uint GL_INT_SAMPLER_2D_RECT = 0x8DCD;
        public const uint GL_INT_SAMPLER_BUFFER = 0x8DD0;
        public const uint GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5;
        public const uint GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8;
        public const uint GL_TEXTURE_BUFFER = 0x8C2A;
        public const uint GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B;
        public const uint GL_TEXTURE_BINDING_BUFFER = 0x8C2C;
        public const uint GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D;
        public const uint GL_TEXTURE_BUFFER_FORMAT = 0x8C2E;
        public const uint GL_TEXTURE_RECTANGLE = 0x84F5;
        public const uint GL_TEXTURE_BINDING_RECTANGLE = 0x84F6;
        public const uint GL_PROXY_TEXTURE_RECTANGLE = 0x84F7;
        public const uint GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8;
        public const uint GL_RED_SNORM = 0x8F90;
        public const uint GL_RG_SNORM = 0x8F91;
        public const uint GL_RGB_SNORM = 0x8F92;
        public const uint GL_RGBA_SNORM = 0x8F93;
        public const uint GL_R8_SNORM = 0x8F94;
        public const uint GL_RG8_SNORM = 0x8F95;
        public const uint GL_RGB8_SNORM = 0x8F96;
        public const uint GL_RGBA8_SNORM = 0x8F97;
        public const uint GL_R16_SNORM = 0x8F98;
        public const uint GL_RG16_SNORM = 0x8F99;
        public const uint GL_RGB16_SNORM = 0x8F9A;
        public const uint GL_RGBA16_SNORM = 0x8F9B;
        public const uint GL_SIGNED_NORMALIZED = 0x8F9C;
        public const uint GL_PRIMITIVE_RESTART = 0x8F9D;
        public const uint GL_PRIMITIVE_RESTART_INDEX = 0x8F9E;

        #endregion

        #region 3.2

        //  Constants
        public const uint GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001;
        public const uint GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002;
        public const uint GL_LINES_ADJACENCY = 0x000A;
        public const uint GL_LINE_STRIP_ADJACENCY = 0x000B;
        public const uint GL_TRIANGLES_ADJACENCY = 0x000C;
        public const uint GL_TRIANGLE_STRIP_ADJACENCY = 0x000D;
        public const uint GL_PROGRAM_POINT_SIZE = 0x8642;
        public const uint GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29;
        public const uint GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7;
        public const uint GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8;
        public const uint GL_GEOMETRY_SHADER = 0x8DD9;
        public const uint GL_GEOMETRY_VERTICES_OUT = 0x8916;
        public const uint GL_GEOMETRY_INPUT_TYPE = 0x8917;
        public const uint GL_GEOMETRY_OUTPUT_TYPE = 0x8918;
        public const uint GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF;
        public const uint GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0;
        public const uint GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1;
        public const uint GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
        public const uint GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123;
        public const uint GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124;
        public const uint GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
        public const uint GL_CONTEXT_PROFILE_MASK = 0x9126;

        #endregion

        #region 3.3
        public const uint GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE;
        #endregion

        #region 4.0
        //  Constants
        public const uint GL_SAMPLE_SHADING = 0x8C36;
        public const uint GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37;
        public const uint GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E;
        public const uint GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F;
        public const uint GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009;
        public const uint GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A;
        public const uint GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B;
        public const uint GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C;
        public const uint GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D;
        public const uint GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E;
        public const uint GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F;
        #endregion
    }

    /// <summary>
    ///  AccumOp
    /// </summary>
    public enum AccumOperation : uint
    {
        Accum = GLEnums.GL_ACCUM,
        Load = GLEnums.GL_LOAD,
        Return = GLEnums.GL_RETURN,
        Multiple = GLEnums.GL_MULT,
        Add = GLEnums.GL_ADD
    }

    /// <summary>
    /// The alpha function
    /// </summary>
    public enum AlphaTestFunction : uint
    {
        /// <summary>
        /// 总是不接受
        /// </summary>
        Never = GLEnums.GL_NEVER,
        /// <summary>
        /// 如果片元的alpha值小于参考值，则接受
        /// </summary>
        Less = GLEnums.GL_LESS,
        /// <summary>
        /// 如果片元的alpha值等于参考值，则接受
        /// </summary>
        Equal = GLEnums.GL_EQUAL,
        /// <summary>
        /// 如果片元的alpha值小于或等于参考值，则接受
        /// </summary>
        LessThanOrEqual = GLEnums.GL_LEQUAL,
        /// <summary>
        /// 如果片元的alpha值大于参考值，则接受
        /// </summary>
        Great = GLEnums.GL_GREATER,
        /// <summary>
        /// 如果片元的alpha值不等于参考值，则接受
        /// </summary>
        NotEqual = GLEnums.GL_NOTEQUAL,
        /// <summary>
        /// 如果片元的alpha值大于或等于参考值，则接受
        /// </summary>
        GreaterThanOrEqual = GLEnums.GL_GEQUAL,
        /// <summary>
        /// 总是接受
        /// </summary>
        Always = GLEnums.GL_ALWAYS,
    }
    
    /// <summary>
    /// The GLEnums Attribute flags.
    /// </summary>
    [Flags]
    public enum AttributeMask : uint
    {
        None = 0,
        /// <summary>
        /// 当前（颜色，纹理等等）
        /// </summary>
        Current = GLEnums.GL_CURRENT_BIT,
        /// <summary>
        /// 点
        /// </summary>
        Point = GLEnums.GL_POINT_BIT,
        /// <summary>
        /// 直线
        /// </summary>
        Line = GLEnums.GL_LINE_BIT,
        /// <summary>
        /// 多边形
        /// </summary>
        Polygon = GLEnums.GL_POLYGON_BIT,
        /// <summary>
        /// 多边形点
        /// </summary>
        PolygonStipple = GLEnums.GL_POLYGON_STIPPLE_BIT,
        /// <summary>
        /// 像素
        /// </summary>
        PixelMode = GLEnums.GL_PIXEL_MODE_BIT,
        /// <summary>
        /// 光照
        /// </summary>
        Lighting = GLEnums.GL_LIGHTING_BIT,
        /// <summary>
        /// 雾
        /// </summary>
        Fog = GLEnums.GL_FOG_BIT,
        /// <summary>
        /// 深度缓存
        /// </summary>
        DepthBuffer = GLEnums.GL_DEPTH_BUFFER_BIT,
        /// <summary>
        /// 累计缓存
        /// </summary>
        AccumBuffer = GLEnums.GL_ACCUM_BUFFER_BIT,
        /// <summary>
        /// 模板缓存
        /// </summary>
        StencilBuffer = GLEnums.GL_STENCIL_BUFFER_BIT,
        /// <summary>
        /// 视窗
        /// </summary>
        Viewport = GLEnums.GL_VIEWPORT_BIT,
        /// <summary>
        /// 变换
        /// </summary>
        Transform = GLEnums.GL_TRANSFORM_BIT,
        /// <summary>
        /// 启用
        /// </summary>
        Enable = GLEnums.GL_ENABLE_BIT,
        /// <summary>
        /// 颜色缓存
        /// </summary>
        ColorBuffer = GLEnums.GL_COLOR_BUFFER_BIT,
        Hint = GLEnums.GL_HINT_BIT,
        /// <summary>
        /// 求值程序
        /// </summary>
        Eval = GLEnums.GL_EVAL_BIT,
        /// <summary>
        /// 列表
        /// </summary>
        List = GLEnums.GL_LIST_BIT,
        /// <summary>
        /// 纹理
        /// </summary>
        Texture = GLEnums.GL_TEXTURE_BIT,
        /// <summary>
        /// 裁剪
        /// </summary>
        Scissor = GLEnums.GL_SCISSOR_BIT,
        /// <summary>
        /// 用于存储和恢复所有属性组中的所有状态变量
        /// </summary>
        All = GLEnums.GL_ALL_ATTRIB_BITS,
    }

    /// <summary>
    /// The begin mode.
    /// </summary>
    public enum BeginMode : uint
    {
        /// <summary>
        /// 一系列独立的点
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        Points = GLEnums.GL_POINTS,
        /// <summary>
        /// 每两点相连成为线段
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        Lines = GLEnums.GL_LINES,
        /// <summary>
        ///顶点相连成为一系列线段，连接最后一点与第一点
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        LineLoop = GLEnums.GL_LINE_LOOP,
        /// <summary>
        /// 顶点相连成为一系列线段
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        LineStrip = GLEnums.GL_LINE_STRIP,
        /// <summary>
        /// 三点相连成为一个三角形
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        Triangles = GLEnums.GL_TRIANGLES,
        /// <summary>
        /// 相连的三角形带
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        TriangleString = GLEnums.GL_TRIANGLE_STRIP,
        /// <summary>
        /// 相连的三角形扇形
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        TriangleFan = GLEnums.GL_TRIANGLE_FAN,
        /// <summary>
        /// 四点相连成为一个四边形
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        Quads= GLEnums.GL_QUADS,
        /// <summary>
        /// 相连的四边形带
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        QuadStrip = GLEnums.GL_QUAD_STRIP,
        /// <summary>
        /// 简单，凸多边形的边界
        /// </summary>
        /// <value>Null</value>
        /// <see cref=""/>
        /// <PropertyGroup>geometry</PropertyGroup>
        Polygon = GLEnums.GL_POLYGON
    }
    
    /// <summary>
    /// BlendingDestinationFactor
    /// </summary>
    public enum BlendingDestinationFactor : uint
    {
        Zero = GLEnums.GL_ZERO,
        One = GLEnums.GL_ONE,
        SourceColor = GLEnums.GL_SRC_COLOR,
        OneMinusSourceColor = GLEnums.GL_ONE_MINUS_SRC_COLOR,
        SourceAlpha = GLEnums.GL_SRC_ALPHA,
        OneMinusSourceAlpha = GLEnums.GL_ONE_MINUS_SRC_ALPHA,
        DestinationAlpha = GLEnums.GL_DST_ALPHA,
        OneMinusDestinationAlpha = GLEnums.GL_ONE_MINUS_DST_ALPHA,
    }

    /// <summary>
    /// The blending source factor.
    /// </summary>
    public enum BlendingSourceFactor : uint
    {
        DestinationColor = GLEnums.GL_DST_COLOR,
        OneMinusDestinationColor = GLEnums.GL_ONE_MINUS_DST_COLOR,
        SourceAlphaSaturate = GLEnums.GL_SRC_ALPHA_SATURATE,
        /// <summary>
        /// 
        /// </summary>
        SourceAlpha = GLEnums.GL_SRC_ALPHA
    }
    
    /// <summary>
    /// The Clip Plane Name
    /// </summary>
    public enum ClipPlaneName : uint
    {
        ClipPlane0 = GLEnums.GL_CLIP_PLANE0,
        ClipPlane1 = GLEnums.GL_CLIP_PLANE1,
        ClipPlane2 = GLEnums.GL_CLIP_PLANE2,
        ClipPlane3 = GLEnums.GL_CLIP_PLANE3,
        ClipPlane4 = GLEnums.GL_CLIP_PLANE4,
        ClipPlane5 = GLEnums.GL_CLIP_PLANE5
    }

    /// <summary>
    /// The Cull Face mode.
    /// </summary>
    public enum FaceMode : uint
    {
        /// <summary>
        /// 
        /// </summary>
        Front = GLEnums.GL_FRONT,
        FrontAndBack = GLEnums.GL_FRONT_AND_BACK,
        Back = GLEnums.GL_BACK,
    }

    /// <summary>
    /// The Data Type.
    /// </summary>
    public enum DataType : uint
    {
        Byte = GLEnums.GL_BYTE,
        UnsignedByte = GLEnums.GL_UNSIGNED_BYTE,
        Short = GLEnums.GL_SHORT,
        UnsignedShort = GLEnums.GL_UNSIGNED_SHORT,
        Int = GLEnums.GL_INT,
        UnsignedInt = GLEnums.GL_UNSIGNED_INT,
        Float = GLEnums.GL_FLOAT,
        TwoBytes = GLEnums.GL_2_BYTES,
        ThreeBytes = GLEnums.GL_3_BYTES,
        FourBytes = GLEnums.GL_4_BYTES,
        /// <summary>
        /// 
        /// </summary>
        Double= GLEnums.GL_DOUBLE
    }

    /// <summary>
    /// The depth function
    /// </summary>
    public enum DepthFunction : uint
    {
        /// <summary>
        /// 总是不接受
        /// </summary>
        Never = GLEnums.GL_NEVER,
        /// <summary>
        /// 如果片元的alpha值小于参考值，则接受
        /// </summary>
        Less = GLEnums.GL_LESS,
        /// <summary>
        /// 如果片元的alpha值等于参考值，则接受
        /// </summary>
        Equal = GLEnums.GL_EQUAL,
        /// <summary>
        /// 如果片元的alpha值小于或等于参考值，则接受
        /// </summary>
        LessThanOrEqual = GLEnums.GL_LEQUAL,
        /// <summary>
        /// 如果片元的alpha值大于参考值，则接受
        /// </summary>
        Great = GLEnums.GL_GREATER,
        /// <summary>
        /// 如果片元的alpha值不等于参考值，则接受
        /// </summary>
        NotEqual = GLEnums.GL_NOTEQUAL,
        /// <summary>
        /// 如果片元的alpha值大于或等于参考值，则接受
        /// </summary>
        GreaterThanOrEqual = GLEnums.GL_GEQUAL,
        /// <summary>
        /// 总是接受
        /// </summary>
        Always = GLEnums.GL_ALWAYS,
    }

    /// <summary>
    /// The Draw Buffer Mode
    /// </summary>
    public enum DrawBufferMode : uint
    {
        None = GLEnums.GL_NONE,
        FrontLeft = GLEnums.GL_FRONT_LEFT,
        FrontRight = GLEnums.GL_FRONT_RIGHT,
        BackLeft = GLEnums.GL_BACK_LEFT,
        BackRight = GLEnums.GL_BACK_RIGHT,
        Front = GLEnums.GL_FRONT,
        Back = GLEnums.GL_BACK,
        Left = GLEnums.GL_LEFT,
        Right = GLEnums.GL_RIGHT,
        FrontAndBack = GLEnums.GL_FRONT_AND_BACK,
        Auxilliary0= GLEnums.GL_AUX0,
        Auxilliary1 = GLEnums.GL_AUX1,
        Auxilliary2 = GLEnums.GL_AUX2,
        Auxilliary3 = GLEnums.GL_AUX3,
    }
    
    /// <summary>
    /// Error Code
    /// </summary>
    public enum ErrorCode : uint
    {
        NoError = GLEnums.GL_NO_ERROR,
        InvalidEnum = GLEnums.GL_INVALID_ENUM,
        InvalidValue = GLEnums.GL_INVALID_VALUE,
        InvalidOperation = GLEnums.GL_INVALID_OPERATION,
        StackOverflow = GLEnums.GL_STACK_OVERFLOW,
        StackUnderflow = GLEnums.GL_STACK_UNDERFLOW,
        OutOfMemory = GLEnums.GL_OUT_OF_MEMORY
    }

    /// <summary>
    /// FeedBackMode
    /// </summary>
    public enum FeedbackMode : uint
    {
        TwoD = GLEnums.GL_2D,
        ThreeD = GLEnums.GL_3D,
        FourD = GLEnums.GL_4D_COLOR,
        ThreeDColorTexture = GLEnums.GL_3D_COLOR_TEXTURE,
        FourDColorTexture = GLEnums.GL_4D_COLOR_TEXTURE
    }

    /// <summary>
    /// The Feedback Token
    /// </summary>
    public enum FeedbackToken : uint
    {
        PassThroughToken = GLEnums.GL_PASS_THROUGH_TOKEN,
        PointToken = GLEnums.GL_POINT_TOKEN,
        LineToken = GLEnums.GL_LINE_TOKEN,
        PolygonToken = GLEnums.GL_POLYGON_TOKEN,
        BitmapToken = GLEnums.GL_BITMAP_TOKEN,
        DrawPixelToken = GLEnums.GL_DRAW_PIXEL_TOKEN,
        CopyPixelToken = GLEnums.GL_COPY_PIXEL_TOKEN,
        LineResetToken = GLEnums.GL_LINE_RESET_TOKEN
    }

    /// <summary>
    /// The Fog Mode.
    /// </summary>
    public enum FogMode : uint
    {
	   	Exp = GLEnums.GL_EXP,

        /// <summary>
        /// 
        /// </summary>
		Exp2 = GLEnums.GL_EXP2,
	}
	
    /// <summary>
    /// GetMapTarget 
    /// </summary>
    public enum GetMapTarget : uint
    {
        Coeff = GLEnums.GL_COEFF,
        Order = GLEnums.GL_ORDER,
        Domain = GLEnums.GL_DOMAIN
    }

    public enum GetTarget : uint
    {
        CurrentColor = GLEnums.GL_CURRENT_COLOR,
        CurrentIndex = GLEnums.GL_CURRENT_INDEX,
        CurrentNormal = GLEnums.GL_CURRENT_NORMAL,
        CurrentTextureCoords = GLEnums.GL_CURRENT_TEXTURE_COORDS,
        CurrentRasterColor = GLEnums.GL_CURRENT_RASTER_COLOR,
        CurrentRasterIndex = GLEnums.GL_CURRENT_RASTER_INDEX,
        CurrentRasterTextureCoords = GLEnums.GL_CURRENT_RASTER_TEXTURE_COORDS,
        CurrentRasterPosition = GLEnums.GL_CURRENT_RASTER_POSITION,
        CurrentRasterPositionValid = GLEnums.GL_CURRENT_RASTER_POSITION_VALID,
        CurrentRasterDistance = GLEnums.GL_CURRENT_RASTER_DISTANCE,
        PointSmooth = GLEnums.GL_POINT_SMOOTH,
        PointSize = GLEnums.GL_POINT_SIZE,
        PointSizeRange = GLEnums.GL_POINT_SIZE_RANGE,
        PointSizeGranularity = GLEnums.GL_POINT_SIZE_GRANULARITY,
        LineSmooth = GLEnums.GL_LINE_SMOOTH,
        LineWidth = GLEnums.GL_LINE_WIDTH,
        LineWidthRange = GLEnums.GL_LINE_WIDTH_RANGE,
        LineWidthGranularity = GLEnums.GL_LINE_WIDTH_GRANULARITY,
        LineStipple = GLEnums.GL_LINE_STIPPLE,
        LineStipplePattern = GLEnums.GL_LINE_STIPPLE_PATTERN,
        LineStippleRepeat = GLEnums.GL_LINE_STIPPLE_REPEAT,
        ListMode = GLEnums.GL_LIST_MODE,
        MaxListNesting = GLEnums.GL_MAX_LIST_NESTING,
        ListBase = GLEnums.GL_LIST_BASE,
        ListIndex = GLEnums.GL_LIST_INDEX,
        PolygonMode = GLEnums.GL_POLYGON_MODE,
        PolygonSmooth = GLEnums.GL_POLYGON_SMOOTH,
        PolygonStipple = GLEnums.GL_POLYGON_STIPPLE,
        EdgeFlag = GLEnums.GL_EDGE_FLAG,
        CullFace = GLEnums.GL_CULL_FACE,
        CullFaceMode = GLEnums.GL_CULL_FACE_MODE,
        FrontFace = GLEnums.GL_FRONT_FACE,
        Lighting = GLEnums.GL_LIGHTING,
        LightModelLocalViewer = GLEnums.GL_LIGHT_MODEL_LOCAL_VIEWER,
        LightModelTwoSide = GLEnums.GL_LIGHT_MODEL_TWO_SIDE,
        LightModelAmbient = GLEnums.GL_LIGHT_MODEL_AMBIENT,
        ShadeModel = GLEnums.GL_SHADE_MODEL,
        ColorMaterialFace = GLEnums.GL_COLOR_MATERIAL_FACE,
        ColorMaterialParameter = GLEnums.GL_COLOR_MATERIAL_PARAMETER,
        ColorMaterial = GLEnums.GL_COLOR_MATERIAL,
        Fog = GLEnums.GL_FOG,
        FogIndex = GLEnums.GL_FOG_INDEX,
        FogDensity = GLEnums.GL_FOG_DENSITY,
        FogStart = GLEnums.GL_FOG_START,
        FogEnd = GLEnums.GL_FOG_END,
        FogMode = GLEnums.GL_FOG_MODE,
        FogColor = GLEnums.GL_FOG_COLOR,
        DepthRange = GLEnums.GL_DEPTH_RANGE,
        DepthTest = GLEnums.GL_DEPTH_TEST,
        DepthWritemask = GLEnums.GL_DEPTH_WRITEMASK,
        DepthClearValue = GLEnums.GL_DEPTH_CLEAR_VALUE,
        DepthFunc = GLEnums.GL_DEPTH_FUNC,
        AccumClearValue = GLEnums.GL_ACCUM_CLEAR_VALUE,
        StencilTest = GLEnums.GL_STENCIL_TEST,
        StencilClearValue = GLEnums.GL_STENCIL_CLEAR_VALUE,
        StencilFunc = GLEnums.GL_STENCIL_FUNC,
        StencilValueMask = GLEnums.GL_STENCIL_VALUE_MASK,
        StencilFail = GLEnums.GL_STENCIL_FAIL,
        StencilPassDepthFail = GLEnums.GL_STENCIL_PASS_DEPTH_FAIL,
        StencilPassDepthPass = GLEnums.GL_STENCIL_PASS_DEPTH_PASS,
        StencilRef = GLEnums.GL_STENCIL_REF,
        StencilWritemask = GLEnums.GL_STENCIL_WRITEMASK,
        MatrixMode = GLEnums.GL_MATRIX_MODE,
        Normalize = GLEnums.GL_NORMALIZE,
        Viewport = GLEnums.GL_VIEWPORT,
        ModelviewStackDepth = GLEnums.GL_MODELVIEW_STACK_DEPTH,
        ProjectionStackDepth = GLEnums.GL_PROJECTION_STACK_DEPTH,
        TextureStackDepth = GLEnums.GL_TEXTURE_STACK_DEPTH,
        ModelviewMatix = GLEnums.GL_MODELVIEW_MATRIX,
        ProjectionMatrix = GLEnums.GL_PROJECTION_MATRIX,
        TextureMatrix = GLEnums.GL_TEXTURE_MATRIX,
        AttribStackDepth = GLEnums.GL_ATTRIB_STACK_DEPTH,
        ClientAttribStackDepth = GLEnums.GL_CLIENT_ATTRIB_STACK_DEPTH,
        AlphaTest = GLEnums.GL_ALPHA_TEST,
        AlphaTestFunc = GLEnums.GL_ALPHA_TEST_FUNC,
        AlphaTestRef = GLEnums.GL_ALPHA_TEST_REF,
        Dither = GLEnums.GL_DITHER,
        BlendDst = GLEnums.GL_BLEND_DST,
        BlendSrc = GLEnums.GL_BLEND_SRC,
        Blend = GLEnums.GL_BLEND,
        LogicOpMode = GLEnums.GL_LOGIC_OP_MODE,
        IndexLogicOp = GLEnums.GL_INDEX_LOGIC_OP,
        ColorLogicOp = GLEnums.GL_COLOR_LOGIC_OP,
        AuxBuffers = GLEnums.GL_AUX_BUFFERS,
        DrawBuffer = GLEnums.GL_DRAW_BUFFER,
        ReadBuffer = GLEnums.GL_READ_BUFFER,
        ScissorBox = GLEnums.GL_SCISSOR_BOX,
        ScissorTest = GLEnums.GL_SCISSOR_TEST,
        IndexClearValue = GLEnums.GL_INDEX_CLEAR_VALUE,
        IndexWritemask = GLEnums.GL_INDEX_WRITEMASK,
        ColorClearValue = GLEnums.GL_COLOR_CLEAR_VALUE,
        ColorWritemask = GLEnums.GL_COLOR_WRITEMASK,
        IndexMode = GLEnums.GL_INDEX_MODE,
        RgbaMode = GLEnums.GL_RGBA_MODE,
        DoubleBuffer = GLEnums.GL_DOUBLEBUFFER,
        Stereo = GLEnums.GL_STEREO,
        RenderMode = GLEnums.GL_RENDER_MODE,
        PerspectiveCorrectionHint = GLEnums.GL_PERSPECTIVE_CORRECTION_HINT,
        PointSmoothHint = GLEnums.GL_POINT_SMOOTH_HINT,
        LineSmoothHint = GLEnums.GL_LINE_SMOOTH_HINT,
        PolygonSmoothHint = GLEnums.GL_POLYGON_SMOOTH_HINT,
        FogHint = GLEnums.GL_FOG_HINT,
        TextureGenS = GLEnums.GL_TEXTURE_GEN_S,
        TextureGenT = GLEnums.GL_TEXTURE_GEN_T,
        TextureGenR = GLEnums.GL_TEXTURE_GEN_R,
        TextureGenQ = GLEnums.GL_TEXTURE_GEN_Q,
        PixelMapItoI = GLEnums.GL_PIXEL_MAP_I_TO_I,
        PixelMapStoS = GLEnums.GL_PIXEL_MAP_S_TO_S,
        PixelMapItoR = GLEnums.GL_PIXEL_MAP_I_TO_R,
        PixelMapItoG = GLEnums.GL_PIXEL_MAP_I_TO_G,
        PixelMapItoB = GLEnums.GL_PIXEL_MAP_I_TO_B,
        PixelMapItoA = GLEnums.GL_PIXEL_MAP_I_TO_A,
        PixelMapRtoR = GLEnums.GL_PIXEL_MAP_R_TO_R,
        PixelMapGtoG = GLEnums.GL_PIXEL_MAP_G_TO_G,
        PixelMapBtoB = GLEnums.GL_PIXEL_MAP_B_TO_B,
        PixelMapAtoA = GLEnums.GL_PIXEL_MAP_A_TO_A,
        PixelMapItoISize = GLEnums.GL_PIXEL_MAP_I_TO_I_SIZE,
        PixelMapStoSSize = GLEnums.GL_PIXEL_MAP_S_TO_S_SIZE,
        PixelMapItoRSize = GLEnums.GL_PIXEL_MAP_I_TO_R_SIZE,
        PixelMapItoGSize = GLEnums.GL_PIXEL_MAP_I_TO_G_SIZE,
        PixelMapItoBSize = GLEnums.GL_PIXEL_MAP_I_TO_B_SIZE,
        PixelMapItoASize = GLEnums.GL_PIXEL_MAP_I_TO_A_SIZE,
        PixelMapRtoRSize = GLEnums.GL_PIXEL_MAP_R_TO_R_SIZE,
        PixelMapGtoGSize = GLEnums.GL_PIXEL_MAP_G_TO_G_SIZE,
        PixelMapBtoBSize = GLEnums.GL_PIXEL_MAP_B_TO_B_SIZE,
        PixelMapAtoASize = GLEnums.GL_PIXEL_MAP_A_TO_A_SIZE,
        UnpackSwapBytes = GLEnums.GL_UNPACK_SWAP_BYTES,
        LsbFirst = GLEnums.GL_UNPACK_LSB_FIRST,
        UnpackRowLength = GLEnums.GL_UNPACK_ROW_LENGTH,
        UnpackSkipRows = GLEnums.GL_UNPACK_SKIP_ROWS,
        UnpackSkipPixels = GLEnums.GL_UNPACK_SKIP_PIXELS,
        UnpackAlignment = GLEnums.GL_UNPACK_ALIGNMENT,
        PackSwapBytes = GLEnums.GL_PACK_SWAP_BYTES,
        PackLsbFirst = GLEnums.GL_PACK_LSB_FIRST,
        PackRowLength = GLEnums.GL_PACK_ROW_LENGTH,
        PackSkipRows = GLEnums.GL_PACK_SKIP_ROWS,
        PackSkipPixels = GLEnums.GL_PACK_SKIP_PIXELS,
        PackAlignment = GLEnums.GL_PACK_ALIGNMENT,
        MapColor = GLEnums.GL_MAP_COLOR,
        MapStencil = GLEnums.GL_MAP_STENCIL,
        IndexShift = GLEnums.GL_INDEX_SHIFT,
        IndexOffset = GLEnums.GL_INDEX_OFFSET,
        RedScale = GLEnums.GL_RED_SCALE,
        RedBias = GLEnums.GL_RED_BIAS,
        ZoomX = GLEnums.GL_ZOOM_X,
        ZoomY = GLEnums.GL_ZOOM_Y,
        GreenScale = GLEnums.GL_GREEN_SCALE,
        GreenBias = GLEnums.GL_GREEN_BIAS,
        BlueScale = GLEnums.GL_BLUE_SCALE,
        BlueBias = GLEnums.GL_BLUE_BIAS,
        AlphaScale = GLEnums.GL_ALPHA_SCALE,
        AlphaBias = GLEnums.GL_ALPHA_BIAS,
        DepthScale = GLEnums.GL_DEPTH_SCALE,
        DepthBias = GLEnums.GL_DEPTH_BIAS,
        MapEvalOrder = GLEnums.GL_MAX_EVAL_ORDER,
        MaxLights = GLEnums.GL_MAX_LIGHTS,
        MaxClipPlanes = GLEnums.GL_MAX_CLIP_PLANES,
        MaxTextureSize = GLEnums.GL_MAX_TEXTURE_SIZE,
        MapPixelMapTable = GLEnums.GL_MAX_PIXEL_MAP_TABLE,
        MaxAttribStackDepth = GLEnums.GL_MAX_ATTRIB_STACK_DEPTH,
        MaxModelviewStackDepth = GLEnums.GL_MAX_MODELVIEW_STACK_DEPTH,
        MaxNameStackDepth = GLEnums.GL_MAX_NAME_STACK_DEPTH,
        MaxProjectionStackDepth = GLEnums.GL_MAX_PROJECTION_STACK_DEPTH,
        MaxTextureStackDepth = GLEnums.GL_MAX_TEXTURE_STACK_DEPTH,
        MaxViewportDims = GLEnums.GL_MAX_VIEWPORT_DIMS,
        MaxClientAttribStackDepth = GLEnums.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
        SubpixelBits = GLEnums.GL_SUBPIXEL_BITS,
        IndexBits = GLEnums.GL_INDEX_BITS,
        RedBits = GLEnums.GL_RED_BITS,
        GreenBits = GLEnums.GL_GREEN_BITS,
        BlueBits = GLEnums.GL_BLUE_BITS,
        AlphaBits = GLEnums.GL_ALPHA_BITS,
        DepthBits = GLEnums.GL_DEPTH_BITS,
        StencilBits = GLEnums.GL_STENCIL_BITS,
        AccumRedBits = GLEnums.GL_ACCUM_RED_BITS,
        AccumGreenBits = GLEnums.GL_ACCUM_GREEN_BITS,
        AccumBlueBits = GLEnums.GL_ACCUM_BLUE_BITS,
        AccumAlphaBits = GLEnums.GL_ACCUM_ALPHA_BITS,
        NameStackDepth = GLEnums.GL_NAME_STACK_DEPTH,
        AutoNormal = GLEnums.GL_AUTO_NORMAL,
        Map1Color4 = GLEnums.GL_MAP1_COLOR_4,
        Map1Index = GLEnums.GL_MAP1_INDEX,
        Map1Normal = GLEnums.GL_MAP1_NORMAL,
        Map1TextureCoord1 = GLEnums.GL_MAP1_TEXTURE_COORD_1,
        Map1TextureCoord2 = GLEnums.GL_MAP1_TEXTURE_COORD_2,
        Map1TextureCoord3 = GLEnums.GL_MAP1_TEXTURE_COORD_3,
        Map1TextureCoord4 = GLEnums.GL_MAP1_TEXTURE_COORD_4,
        Map1Vertex3 = GLEnums.GL_MAP1_VERTEX_3,
        Map1Vertex4 = GLEnums.GL_MAP1_VERTEX_4,
        Map2Color4 = GLEnums.GL_MAP2_COLOR_4,
        Map2Index = GLEnums.GL_MAP2_INDEX,
        Map2Normal = GLEnums.GL_MAP2_NORMAL,
        Map2TextureCoord1 = GLEnums.GL_MAP2_TEXTURE_COORD_1,
        Map2TextureCoord2 = GLEnums.GL_MAP2_TEXTURE_COORD_2,
        Map2TextureCoord3 = GLEnums.GL_MAP2_TEXTURE_COORD_3,
        Map2TextureCoord4 = GLEnums.GL_MAP2_TEXTURE_COORD_4,
        Map2Vertex3 = GLEnums.GL_MAP2_VERTEX_3,
        Map2Vertex4 = GLEnums.GL_MAP2_VERTEX_4,
        Map1GridDomain = GLEnums.GL_MAP1_GRID_DOMAIN,
        Map1GridSegments = GLEnums.GL_MAP1_GRID_SEGMENTS,
        Map2GridDomain = GLEnums.GL_MAP2_GRID_DOMAIN,
        Map2GridSegments = GLEnums.GL_MAP2_GRID_SEGMENTS,
        Texture1D = GLEnums.GL_TEXTURE_1D,
        Texture2D = GLEnums.GL_TEXTURE_2D,
        FeedbackBufferPointer = GLEnums.GL_FEEDBACK_BUFFER_POINTER,
        FeedbackBufferSize = GLEnums.GL_FEEDBACK_BUFFER_SIZE,
        FeedbackBufferType = GLEnums.GL_FEEDBACK_BUFFER_TYPE,
        SelectionBufferPointer = GLEnums.GL_SELECTION_BUFFER_POINTER,
        SelectionBufferSize = GLEnums.GL_SELECTION_BUFFER_SIZE
    }	

    /// <summary>
    /// The Front Face Mode.
    /// </summary>
    public enum FrontFaceMode : uint
    {
        ClockWise = GLEnums.GL_CW,
        CounterClockWise = GLEnums.GL_CCW,
    }


    /// <summary>
    /// The hint mode.
    /// </summary>
	public enum HintMode : uint
    {
		DontCare = GLEnums.GL_DONT_CARE,
		Fastest = GLEnums.GL_FASTEST,
        /// <summary>
        /// The 
        /// </summary>
        Nicest = GLEnums.GL_NICEST
    }

    /// <summary>
    /// The hint target.
    /// </summary>
    public enum HintTarget : uint
    {
        PerspectiveCorrection = GLEnums.GL_PERSPECTIVE_CORRECTION_HINT,
        PointSmooth = GLEnums.GL_POINT_SMOOTH_HINT,
        LineSmooth = GLEnums.GL_LINE_SMOOTH_HINT,
        PolygonSmooth = GLEnums.GL_POLYGON_SMOOTH_HINT,
        Fog = GLEnums.GL_FOG_HINT
    }
     
    /// <summary>
    /// LightName
    /// </summary>
    public enum LightName : uint
    {
		Light0 = GLEnums.GL_LIGHT0,
        Light1 = GLEnums.GL_LIGHT1,
        Light2 = GLEnums.GL_LIGHT2,
        Light3 = GLEnums.GL_LIGHT3,
        Light4 = GLEnums.GL_LIGHT4,
        Light5 = GLEnums.GL_LIGHT5,
        Light6 = GLEnums.GL_LIGHT6,
        Light7 = GLEnums.GL_LIGHT7  
    }
	
    /// <summary>
    /// 光参数
    /// </summary>
    public enum LightParameter : uint
    {
        /// <summary>
        /// 光源泛光强度的RGBA值
        /// </summary>
        /// <value>(0,0,0,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        Ambient = GLEnums.GL_AMBIENT,
        /// <summary>
        /// 光源漫反射强度的RGBA值
        /// </summary>
        /// <value>(1,1,1,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        Diffuse = GLEnums.GL_DIFFUSE,
        /// <summary>
        /// 光源镜面反射强度的RGBA值
        /// </summary>
        /// <value>(1,1,1,1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        Specular = GLEnums.GL_SPECULAR,
        /// <summary>
        /// 光源的位置（x,y,z,w）
        /// </summary>
        /// <value>(0,0,1,0)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        Position = GLEnums.GL_POSITION,
        /// <summary>
        /// 聚光灯的方向（x,y,z）
        /// </summary>
        /// <value>(0,0,-1)</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        SpotDirection = GLEnums.GL_SPOT_DIRECTION,
        /// <summary>
        /// 聚光灯指数
        /// </summary>
        /// <value>0</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        SpotExponent = GLEnums.GL_SPOT_EXPONENT,
        /// <summary>
        /// 聚光灯的截止角度
        /// </summary>
        /// <value>180</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        SpotCutoff = GLEnums.GL_SPOT_CUTOFF,
        /// <summary>
        /// 衰减因子常量
        /// </summary>
        /// <value>1</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        ConstantAttenuatio = GLEnums.GL_CONSTANT_ATTENUATION,
        /// <summary>
        ///线形衰减因子
        /// </summary>
        /// <value>0</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        LinearAttenuation = GLEnums.GL_LINEAR_ATTENUATION,
        /// <summary>
        ///二次衰减因子
        /// </summary>
        /// <value>0</value>
        /// <see cref=""/>
        /// <PropertyGroup>LIGHT</PropertyGroup>
        QuadraticAttenuation = GLEnums.GL_QUADRATIC_ATTENUATION
    }

    /// <summary>
    /// The Light Model Parameter.
    /// </summary>
    public enum LightModelParameter : uint
    {
        LocalViewer = GLEnums.GL_LIGHT_MODEL_LOCAL_VIEWER,
        TwoSide = GLEnums.GL_LIGHT_MODEL_TWO_SIDE,
        Ambient = GLEnums.GL_LIGHT_MODEL_AMBIENT
    }

    /// <summary>
    ///逻辑操作
    /// </summary>
    public enum LogicOp : uint
    {
        Clear = GLEnums.GL_CLEAR,
        And = GLEnums.GL_AND,
        AndReverse  = GLEnums.GL_AND_REVERSE,
        Copy = GLEnums.GL_COPY,
        AndInverted = GLEnums.GL_AND_INVERTED,
        NoOp= GLEnums.GL_NOOP,
        XOr = GLEnums.GL_XOR,
        Or = GLEnums.GL_OR,
        NOr= GLEnums.GL_NOR,
        Equiv = GLEnums.GL_EQUIV,
        Invert = GLEnums.GL_INVERT,
        OrReverse = GLEnums.GL_OR_REVERSE,
        CopyInverted = GLEnums.GL_COPY_INVERTED,
        OrInverted = GLEnums.GL_OR_INVERTED,
        NAnd= GLEnums.GL_NAND,
        Set = GLEnums.GL_SET,
    }

    /// <summary>
    /// 矩阵模式
    /// </summary>
    public enum MatrixMode : uint
    {
        /// <summary>
        /// 对模型视景矩阵堆栈应用随后的矩阵操作
        /// </summary>
        Modelview = GLEnums.GL_MODELVIEW,
        /// <summary>
        /// 对投影矩阵应用随后的矩阵操作
        /// </summary>
        Projection = GLEnums.GL_PROJECTION,
        /// <summary>
        /// 对纹理矩阵堆栈应用随后的矩阵操作
        /// </summary>
        Texture = GLEnums.GL_TEXTURE
    }

    /// <summary>
    /// The pixel transfer parameter name
    /// </summary>
    public enum PixelTransferParameterName : uint
    {
        MapColor = GLEnums.GL_MAP_COLOR,
        MapStencil = GLEnums.GL_MAP_STENCIL,
        IndexShift = GLEnums.GL_INDEX_SHIFT,
        IndexOffset = GLEnums.GL_INDEX_OFFSET,
        RedScale = GLEnums.GL_RED_SCALE,
        RedBias = GLEnums.GL_RED_BIAS,
        ZoomX = GLEnums.GL_ZOOM_X,
        ZoomY = GLEnums.GL_ZOOM_Y,
        GreenScale = GLEnums.GL_GREEN_SCALE,
        GreenBias = GLEnums.GL_GREEN_BIAS,
        BlueScale = GLEnums.GL_BLUE_SCALE,
        BlueBias = GLEnums.GL_BLUE_BIAS,
        AlphaScale = GLEnums.GL_ALPHA_SCALE,
        AlphaBias = GLEnums.GL_ALPHA_BIAS,
        DepthScale = GLEnums.GL_DEPTH_SCALE,
        DepthBias = GLEnums.GL_DEPTH_BIAS
    }

    /// <summary>
    /// 多边形模式
    /// </summary>
    public enum PolygonMode : uint
    {
        /// <summary>
        ///点模式
        /// </summary>
        Points = GLEnums.GL_POINT,

        /// <summary>
        ///线模式
        /// </summary>
        Lines = GLEnums.GL_LINE,

        /// <summary>
        /// 填充模式
        /// </summary>
        Filled = GLEnums.GL_FILL
    }
    
    /// <summary>
    /// Rendering Mode 
    /// </summary>
    public enum RenderModeTypes: uint
    {
        Render = GLEnums.GL_RENDER,
        Feedback = GLEnums.GL_FEEDBACK,
        Select = GLEnums.GL_SELECT
    }

    /// <summary>
    /// ShadingModel
    /// </summary>
	public enum ShadeModelTypes : uint
    {
        Flat = GLEnums.GL_FLAT,
        Smooth = GLEnums.GL_SMOOTH
    }

    /// <summary>
    /// The stencil function
    /// </summary>
    public enum StencilFunction : uint
    {
        /// <summary>
        /// 总是不接受
        /// </summary>
        Never = GLEnums.GL_NEVER,
        /// <summary>
        /// 如果片元的alpha值小于参考值，则接受
        /// </summary>
        Less = GLEnums.GL_LESS,
        /// <summary>
        /// 如果片元的alpha值等于参考值，则接受
        /// </summary>
        Equal = GLEnums.GL_EQUAL,
        /// <summary>
        /// 如果片元的alpha值小于或等于参考值，则接受
        /// </summary>
        LessThanOrEqual = GLEnums.GL_LEQUAL,
        /// <summary>
        /// 如果片元的alpha值大于参考值，则接受
        /// </summary>
        Great = GLEnums.GL_GREATER,
        /// <summary>
        /// 如果片元的alpha值不等于参考值，则接受
        /// </summary>
        NotEqual = GLEnums.GL_NOTEQUAL,
        /// <summary>
        /// 如果片元的alpha值大于或等于参考值，则接受
        /// </summary>
        GreaterThanOrEqual = GLEnums.GL_GEQUAL,
        /// <summary>
        /// 总是接受
        /// </summary>
        Always = GLEnums.GL_ALWAYS,
    }

    /// <summary>
    /// 模板操作
    /// </summary>
    public enum StencilOperation : uint
    {
        /// <summary>
        /// 保存当前的模板缓存区值
        /// </summary>
        Keep = GLEnums.GL_KEEP,
        /// <summary>
        /// 用glStencilFunc函数所指定的参考值替换模板参数值
        /// </summary>
        Replace = GLEnums.GL_REPLACE,
        /// <summary>
        /// 增加当前的蒙板缓存区值，但限制在允许范围内
        /// </summary>
        Increase = GLEnums.GL_INCR,
        /// <summary>
        /// 减少当前的模板缓存区值，但限制在允许的范围内
        /// </summary>
        Decrease = GLEnums.GL_DECR,
        /// <summary>
        /// 把当前的模板缓存区值设为0
        /// </summary>
        Zero = GLEnums.GL_ZERO,
        IncreaseWrap = GLEnums.GL_INCR_WRAP,
        DecreaseWrap = GLEnums.GL_DECR_WRAP,
        /// <summary>
        /// 将当前的模板缓存区值进行逐位的翻转
        /// </summary>
        Invert = GLEnums.GL_INVERT
    }    
    
    /// <summary>
    /// 纹理参数
    /// </summary>
    public enum TextureParameter : uint
    {
        /// <summary>
        /// 纹理宽度
        /// </summary>
        TextureWidth = GLEnums.GL_TEXTURE_WIDTH,
        /// <summary>
        /// 纹理高度
        /// </summary>
        TextureHeight = GLEnums.GL_TEXTURE_HEIGHT,
        /// <summary>
        /// 纹理图像的内部格式
        /// </summary>
        TextureInternalFormat = GLEnums.GL_TEXTURE_INTERNAL_FORMAT,
        /// <summary>
        /// 纹理图像边框颜色
        /// </summary>
        TextureBorderColor = GLEnums.GL_TEXTURE_BORDER_COLOR,
        /// <summary>
        /// 纹理图像边框宽度
        /// </summary>
        TextureBorder = GLEnums.GL_TEXTURE_BORDER
    }

    /// <summary>
    /// 目标纹理
    /// </summary>
    public enum TextureTarget : uint
    {
        /// <summary>
        /// 1D纹理
        /// </summary>
        Texture1D = GLEnums.GL_TEXTURE_1D,
        /// <summary>
        /// 2D纹理
        /// </summary>
        Texture2D = GLEnums.GL_TEXTURE_2D,
        /// <summary>
        /// 3D纹理
        /// </summary>
        Texture3D = GLEnums.GL_TEXTURE_3D
    }
}
